TITLE C:\Documents and Settings\Administrator\My Documents\Software\NativeCall\src\cpp\IntCall.cpp .386P include listing.inc if @Version gt 510 .model FLAT else _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' _DATA ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS $$SYMBOLS SEGMENT BYTE USE32 'DEBSYM' $$SYMBOLS ENDS $$TYPES SEGMENT BYTE USE32 'DEBTYP' $$TYPES ENDS _TLS SEGMENT DWORD USE32 PUBLIC 'TLS' _TLS ENDS ; COMDAT ??_C@_0BL@NKOM@java?1lang?1OutOfMemoryError?$AA@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ?FindClass@JNIEnv_@@QAEPAV_jclass@@PBD@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?ThrowNew@JNIEnv_@@QAEJPAV_jclass@@PBD@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?NewObject@JNIEnv_@@QAAPAV_jobject@@PAV_jclass@@PAU_jmethodID@@ZZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?CallBooleanMethod@JNIEnv_@@QAAEPAV_jobject@@PAU_jmethodID@@ZZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?CallIntMethod@JNIEnv_@@QAAJPAV_jobject@@PAU_jmethodID@@ZZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?GetObjectField@JNIEnv_@@QAEPAV_jobject@@PAV2@PAU_jfieldID@@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?GetIntField@JNIEnv_@@QAEJPAV_jobject@@PAU_jfieldID@@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?SetObjectField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?SetIntField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@J@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?GetArrayLength@JNIEnv_@@QAEJPAV_jarray@@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?GetObjectArrayElement@JNIEnv_@@QAEPAV_jobject@@PAV_jobjectArray@@J@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?ReleasePrimitiveArrayCritical@JNIEnv_@@QAEXPAV_jarray@@PAXJ@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??8@YAHABU_GUID@@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT _Java_com_eaio_nativecall_IntCall_executeCall@8 _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT _Java_com_eaio_nativecall_IntCall_executeCall0@12 _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS FLAT GROUP _DATA, CONST, _BSS ASSUME CS: FLAT, DS: FLAT, SS: FLAT endif PUBLIC ?GetIntField@JNIEnv_@@QAEJPAV_jobject@@PAU_jfieldID@@@Z ; JNIEnv_::GetIntField PUBLIC ?SetIntField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@J@Z ; JNIEnv_::SetIntField PUBLIC _Java_com_eaio_nativecall_IntCall_executeCall@8 EXTRN __imp__GetLastError@0:NEAR EXTRN ?fieldFunctionHandle@@3PAU_jfieldID@@A:DWORD ; fieldFunctionHandle EXTRN ?fieldLastErrorCode@@3PAU_jfieldID@@A:DWORD ; fieldLastErrorCode EXTRN __chkesp:NEAR ; COMDAT _Java_com_eaio_nativecall_IntCall_executeCall@8 _TEXT SEGMENT _env$ = 8 _obj$ = 12 _functionHandle$ = -4 _outVal$ = -8 _Java_com_eaio_nativecall_IntCall_executeCall@8 PROC NEAR ; COMDAT ; 79 : (JNIEnv *env, jobject obj) { push ebp mov ebp, esp sub esp, 72 ; 00000048H push ebx push esi push edi lea edi, DWORD PTR [ebp-72] mov ecx, 18 ; 00000012H mov eax, -858993460 ; ccccccccH rep stosd ; 80 : ; 81 : jint functionHandle = env->GetIntField(obj, fieldFunctionHandle); mov eax, DWORD PTR ?fieldFunctionHandle@@3PAU_jfieldID@@A ; fieldFunctionHandle push eax mov ecx, DWORD PTR _obj$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?GetIntField@JNIEnv_@@QAEJPAV_jobject@@PAU_jfieldID@@@Z ; JNIEnv_::GetIntField mov DWORD PTR _functionHandle$[ebp], eax ; 82 : jint outVal; ; 83 : ; 84 : #ifdef _WINDOWS ; 85 : #ifdef _X86_ ; 86 : ; 87 : __asm { ; 88 : ; 89 : call functionHandle call DWORD PTR _functionHandle$[ebp] ; 90 : mov outVal, eax mov DWORD PTR _outVal$[ebp], eax ; 91 : ; 92 : } ; 93 : ; 94 : #endif ; 95 : #endif ; 96 : ; 97 : env->SetIntField(obj, fieldLastErrorCode, GetLastError()); mov esi, esp call DWORD PTR __imp__GetLastError@0 cmp esi, esp call __chkesp push eax mov edx, DWORD PTR ?fieldLastErrorCode@@3PAU_jfieldID@@A ; fieldLastErrorCode push edx mov eax, DWORD PTR _obj$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?SetIntField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@J@Z ; JNIEnv_::SetIntField ; 98 : ; 99 : return outVal; mov eax, DWORD PTR _outVal$[ebp] ; 100 : ; 101 : } pop edi pop esi pop ebx add esp, 72 ; 00000048H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 8 _Java_com_eaio_nativecall_IntCall_executeCall@8 ENDP _TEXT ENDS PUBLIC ?GetObjectField@JNIEnv_@@QAEPAV_jobject@@PAV2@PAU_jfieldID@@@Z ; JNIEnv_::GetObjectField PUBLIC ?SetObjectField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@0@Z ; JNIEnv_::SetObjectField PUBLIC _Java_com_eaio_nativecall_IntCall_executeCall0@12 PUBLIC ?GetArrayLength@JNIEnv_@@QAEJPAV_jarray@@@Z ; JNIEnv_::GetArrayLength PUBLIC ?GetObjectArrayElement@JNIEnv_@@QAEPAV_jobject@@PAV_jobjectArray@@J@Z ; JNIEnv_::GetObjectArrayElement PUBLIC ??_C@_0BL@NKOM@java?1lang?1OutOfMemoryError?$AA@ ; `string' PUBLIC ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z ; JNIEnv_::GetPrimitiveArrayCritical PUBLIC ?ReleasePrimitiveArrayCritical@JNIEnv_@@QAEXPAV_jarray@@PAXJ@Z ; JNIEnv_::ReleasePrimitiveArrayCritical PUBLIC ?FindClass@JNIEnv_@@QAEPAV_jclass@@PBD@Z ; JNIEnv_::FindClass PUBLIC ?ThrowNew@JNIEnv_@@QAEJPAV_jclass@@PBD@Z ; JNIEnv_::ThrowNew PUBLIC ?NewObject@JNIEnv_@@QAAPAV_jobject@@PAV_jclass@@PAU_jmethodID@@ZZ ; JNIEnv_::NewObject PUBLIC ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf PUBLIC ?CallBooleanMethod@JNIEnv_@@QAAEPAV_jobject@@PAU_jmethodID@@ZZ ; JNIEnv_::CallBooleanMethod PUBLIC ?CallIntMethod@JNIEnv_@@QAAJPAV_jobject@@PAU_jmethodID@@ZZ ; JNIEnv_::CallIntMethod EXTRN ??2@YAPAXI@Z:NEAR ; operator new EXTRN ??3@YAXPAX@Z:NEAR ; operator delete EXTRN ?fieldHolderO@@3PAU_jfieldID@@A:DWORD ; fieldHolderO EXTRN ?classBoolean@@3PAV_jclass@@A:DWORD ; classBoolean EXTRN ?classInteger@@3PAV_jclass@@A:DWORD ; classInteger EXTRN ?classByteArray@@3PAV_jclass@@A:DWORD ; classByteArray EXTRN ?classCharArray@@3PAV_jclass@@A:DWORD ; classCharArray EXTRN ?classHolder@@3PAV_jclass@@A:DWORD ; classHolder EXTRN ?methodBooleanValue@@3PAU_jmethodID@@A:DWORD ; methodBooleanValue EXTRN ?methodIntValue@@3PAU_jmethodID@@A:DWORD ; methodIntValue EXTRN ?newIntegerInt@@3PAU_jmethodID@@A:DWORD ; newIntegerInt EXTRN ?newBooleanBoolean@@3PAU_jmethodID@@A:DWORD ; newBooleanBoolean EXTRN _memset:NEAR ; COMDAT ??_C@_0BL@NKOM@java?1lang?1OutOfMemoryError?$AA@ ; File c:\documents and settings\administrator\my documents\software\nativecall\src\cpp\intcall.cpp CONST SEGMENT ??_C@_0BL@NKOM@java?1lang?1OutOfMemoryError?$AA@ DB 'java/lang/OutOfMemor' DB 'yError', 00H ; `string' CONST ENDS ; COMDAT _Java_com_eaio_nativecall_IntCall_executeCall0@12 _TEXT SEGMENT _env$ = 8 _obj$ = 12 _params$ = 16 _len$ = -4 _arrays$ = -8 _param$ = -12 _i$ = -16 _intArg$56817 = -20 _byteArrayArg$56820 = -24 _charArrayArg$56826 = -28 _booleanArg$56832 = -32 _tempArg$56833 = -36 _o$56836 = -40 _intPtr$56838 = -44 _byteArrayArg$56844 = -48 _charArrayArg$56850 = -52 _booleanArg$56856 = -56 _tempPtr$56857 = -60 _functionHandle$ = -64 _outVal$ = -68 _j$ = -72 _o$56875 = -76 _out$56877 = -80 _out$56887 = -84 $T56916 = -88 $T56917 = -92 $T56918 = -96 $T56919 = -100 $T56920 = -104 $T56921 = -108 _Java_com_eaio_nativecall_IntCall_executeCall0@12 PROC NEAR ; COMDAT ; 109 : (JNIEnv *env, jobject obj, jobjectArray params) { push ebp mov ebp, esp sub esp, 172 ; 000000acH push ebx push esi push edi lea edi, DWORD PTR [ebp-172] mov ecx, 43 ; 0000002bH mov eax, -858993460 ; ccccccccH rep stosd ; 110 : ; 111 : const int len = env->GetArrayLength(params); mov eax, DWORD PTR _params$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?GetArrayLength@JNIEnv_@@QAEJPAV_jarray@@@Z ; JNIEnv_::GetArrayLength mov DWORD PTR _len$[ebp], eax ; 112 : ; 113 : int* arrays = NULL; mov DWORD PTR _arrays$[ebp], 0 ; 114 : if (!(arrays = new int[len])) { mov ecx, DWORD PTR _len$[ebp] shl ecx, 2 push ecx call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T56916[ebp], eax mov edx, DWORD PTR $T56916[ebp] mov DWORD PTR _arrays$[ebp], edx cmp DWORD PTR _arrays$[ebp], 0 jne SHORT $L56806 ; 115 : env->ThrowNew(env->FindClass("java/lang/OutOfMemoryError"), NULL); push 0 push OFFSET FLAT:??_C@_0BL@NKOM@java?1lang?1OutOfMemoryError?$AA@ ; `string' mov ecx, DWORD PTR _env$[ebp] call ?FindClass@JNIEnv_@@QAEPAV_jclass@@PBD@Z ; JNIEnv_::FindClass push eax mov ecx, DWORD PTR _env$[ebp] call ?ThrowNew@JNIEnv_@@QAEJPAV_jclass@@PBD@Z ; JNIEnv_::ThrowNew ; 116 : return 0; xor eax, eax jmp $L56801 $L56806: ; 118 : memset(arrays, 0, (sizeof(int) * len)); mov eax, DWORD PTR _len$[ebp] shl eax, 2 push eax push 0 mov ecx, DWORD PTR _arrays$[ebp] push ecx call _memset add esp, 12 ; 0000000cH ; 119 : ; 120 : jobject param; ; 121 : ; 122 : for (int i = len - 1; i >= 0; i--) { mov edx, DWORD PTR _len$[ebp] sub edx, 1 mov DWORD PTR _i$[ebp], edx jmp SHORT $L56811 $L56812: mov eax, DWORD PTR _i$[ebp] sub eax, 1 mov DWORD PTR _i$[ebp], eax $L56811: cmp DWORD PTR _i$[ebp], 0 jl $L56813 ; 123 : ; 124 : param = env->GetObjectArrayElement(params, i); mov ecx, DWORD PTR _i$[ebp] push ecx mov edx, DWORD PTR _params$[ebp] push edx mov ecx, DWORD PTR _env$[ebp] call ?GetObjectArrayElement@JNIEnv_@@QAEPAV_jobject@@PAV_jobjectArray@@J@Z ; JNIEnv_::GetObjectArrayElement mov DWORD PTR _param$[ebp], eax ; 125 : ; 126 : if (param == NULL) { cmp DWORD PTR _param$[ebp], 0 jne SHORT $L56814 ; 127 : _push(0); push 0 ; 129 : else if (env->IsInstanceOf(param, classInteger)) { jmp $L56855 $L56814: mov eax, DWORD PTR ?classInteger@@3PAV_jclass@@A ; classInteger push eax mov ecx, DWORD PTR _param$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56816 ; 130 : int intArg = env->CallIntMethod(param, methodIntValue); mov edx, DWORD PTR ?methodIntValue@@3PAU_jmethodID@@A ; methodIntValue push edx mov eax, DWORD PTR _param$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] push ecx call ?CallIntMethod@JNIEnv_@@QAAJPAV_jobject@@PAU_jmethodID@@ZZ ; JNIEnv_::CallIntMethod add esp, 12 ; 0000000cH mov DWORD PTR _intArg$56817[ebp], eax ; 131 : _push(intArg) push DWORD PTR _intArg$56817[ebp] ; 133 : else if (env->IsInstanceOf(param, classByteArray)) { jmp $L56855 $L56816: mov edx, DWORD PTR ?classByteArray@@3PAV_jclass@@A ; classByteArray push edx mov eax, DWORD PTR _param$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56819 ; 134 : char* byteArrayArg = (char*) env->GetPrimitiveArrayCritical((jarray) param, 0); push 0 mov ecx, DWORD PTR _param$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z ; JNIEnv_::GetPrimitiveArrayCritical mov DWORD PTR _byteArrayArg$56820[ebp], eax ; 135 : arrays[i] = (int) &byteArrayArg; mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _arrays$[ebp] lea ecx, DWORD PTR _byteArrayArg$56820[ebp] mov DWORD PTR [eax+edx*4], ecx ; 136 : _push(byteArrayArg) push DWORD PTR _byteArrayArg$56820[ebp] ; 138 : else if (env->IsInstanceOf(param, classCharArray)) { jmp $L56855 $L56819: mov edx, DWORD PTR ?classCharArray@@3PAV_jclass@@A ; classCharArray push edx mov eax, DWORD PTR _param$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56825 ; 139 : unsigned short* charArrayArg = (unsigned short*) env->GetPrimitiveArrayCritical( ; 140 : (jarray) param, 0); push 0 mov ecx, DWORD PTR _param$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z ; JNIEnv_::GetPrimitiveArrayCritical mov DWORD PTR _charArrayArg$56826[ebp], eax ; 141 : arrays[i] = (int) &charArrayArg; mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _arrays$[ebp] lea ecx, DWORD PTR _charArrayArg$56826[ebp] mov DWORD PTR [eax+edx*4], ecx ; 142 : _push(charArrayArg) push DWORD PTR _charArrayArg$56826[ebp] ; 144 : else if (env->IsInstanceOf(param, classBoolean)) { jmp $L56855 $L56825: mov edx, DWORD PTR ?classBoolean@@3PAV_jclass@@A ; classBoolean push edx mov eax, DWORD PTR _param$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56831 ; 145 : jboolean booleanArg = env->CallBooleanMethod(param, methodBooleanValue); mov ecx, DWORD PTR ?methodBooleanValue@@3PAU_jmethodID@@A ; methodBooleanValue push ecx mov edx, DWORD PTR _param$[ebp] push edx mov eax, DWORD PTR _env$[ebp] push eax call ?CallBooleanMethod@JNIEnv_@@QAAEPAV_jobject@@PAU_jmethodID@@ZZ ; JNIEnv_::CallBooleanMethod add esp, 12 ; 0000000cH mov BYTE PTR _booleanArg$56832[ebp], al ; 146 : int tempArg = (booleanArg == JNI_FALSE ? 0 : 1); mov ecx, DWORD PTR _booleanArg$56832[ebp] and ecx, 255 ; 000000ffH neg ecx sbb ecx, ecx neg ecx mov DWORD PTR _tempArg$56833[ebp], ecx ; 147 : _push(tempArg) push DWORD PTR _tempArg$56833[ebp] ; 149 : else if (env->IsInstanceOf(param, classHolder)) { jmp $L56855 $L56831: mov edx, DWORD PTR ?classHolder@@3PAV_jclass@@A ; classHolder push edx mov eax, DWORD PTR _param$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je $L56855 ; 150 : ; 151 : /* Holder */ ; 152 : ; 153 : jobject o = env->GetObjectField(param, fieldHolderO); mov ecx, DWORD PTR ?fieldHolderO@@3PAU_jfieldID@@A ; fieldHolderO push ecx mov edx, DWORD PTR _param$[ebp] push edx mov ecx, DWORD PTR _env$[ebp] call ?GetObjectField@JNIEnv_@@QAEPAV_jobject@@PAV2@PAU_jfieldID@@@Z ; JNIEnv_::GetObjectField mov DWORD PTR _o$56836[ebp], eax ; 154 : ; 155 : if (env->IsInstanceOf(o, classInteger)) { mov eax, DWORD PTR ?classInteger@@3PAV_jclass@@A ; classInteger push eax mov ecx, DWORD PTR _o$56836[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56837 ; 156 : int *intPtr = new int; push 4 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T56917[ebp], eax mov edx, DWORD PTR $T56917[ebp] mov DWORD PTR _intPtr$56838[ebp], edx ; 157 : *intPtr = env->CallIntMethod(o, methodIntValue); mov eax, DWORD PTR ?methodIntValue@@3PAU_jmethodID@@A ; methodIntValue push eax mov ecx, DWORD PTR _o$56836[ebp] push ecx mov edx, DWORD PTR _env$[ebp] push edx call ?CallIntMethod@JNIEnv_@@QAAJPAV_jobject@@PAU_jmethodID@@ZZ ; JNIEnv_::CallIntMethod add esp, 12 ; 0000000cH mov ecx, DWORD PTR _intPtr$56838[ebp] mov DWORD PTR [ecx], eax ; 158 : arrays[i] = (int) intPtr; mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _arrays$[ebp] mov ecx, DWORD PTR _intPtr$56838[ebp] mov DWORD PTR [eax+edx*4], ecx ; 159 : _push(intPtr); push DWORD PTR _intPtr$56838[ebp] ; 161 : else if (env->IsInstanceOf(o, classByteArray)) { jmp $L56855 $L56837: mov edx, DWORD PTR ?classByteArray@@3PAV_jclass@@A ; classByteArray push edx mov eax, DWORD PTR _o$56836[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56843 ; 162 : char* byteArrayArg = (char*) env->GetPrimitiveArrayCritical((jarray) o, 0); push 0 mov ecx, DWORD PTR _o$56836[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z ; JNIEnv_::GetPrimitiveArrayCritical mov DWORD PTR _byteArrayArg$56844[ebp], eax ; 163 : arrays[i] = (int) &byteArrayArg; mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _arrays$[ebp] lea ecx, DWORD PTR _byteArrayArg$56844[ebp] mov DWORD PTR [eax+edx*4], ecx ; 164 : _push(byteArrayArg) push DWORD PTR _byteArrayArg$56844[ebp] ; 166 : else if (env->IsInstanceOf(o, classCharArray)) { jmp $L56855 $L56843: mov edx, DWORD PTR ?classCharArray@@3PAV_jclass@@A ; classCharArray push edx mov eax, DWORD PTR _o$56836[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56849 ; 167 : unsigned short* charArrayArg = (unsigned short*) env->GetPrimitiveArrayCritical( ; 168 : (jarray) o, 0); push 0 mov ecx, DWORD PTR _o$56836[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z ; JNIEnv_::GetPrimitiveArrayCritical mov DWORD PTR _charArrayArg$56850[ebp], eax ; 169 : arrays[i] = (int) &charArrayArg; mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _arrays$[ebp] lea ecx, DWORD PTR _charArrayArg$56850[ebp] mov DWORD PTR [eax+edx*4], ecx ; 170 : _push(charArrayArg) push DWORD PTR _charArrayArg$56850[ebp] ; 172 : else if (env->IsInstanceOf(o, classBoolean)) { jmp SHORT $L56855 $L56849: mov edx, DWORD PTR ?classBoolean@@3PAV_jclass@@A ; classBoolean push edx mov eax, DWORD PTR _o$56836[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56855 ; 173 : jboolean booleanArg = env->CallBooleanMethod(o, methodBooleanValue); mov ecx, DWORD PTR ?methodBooleanValue@@3PAU_jmethodID@@A ; methodBooleanValue push ecx mov edx, DWORD PTR _o$56836[ebp] push edx mov eax, DWORD PTR _env$[ebp] push eax call ?CallBooleanMethod@JNIEnv_@@QAAEPAV_jobject@@PAU_jmethodID@@ZZ ; JNIEnv_::CallBooleanMethod add esp, 12 ; 0000000cH mov BYTE PTR _booleanArg$56856[ebp], al ; 174 : int *tempPtr = new int; push 4 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T56918[ebp], eax mov ecx, DWORD PTR $T56918[ebp] mov DWORD PTR _tempPtr$56857[ebp], ecx ; 175 : *tempPtr = (booleanArg == JNI_FALSE ? 0 : 1); mov edx, DWORD PTR _booleanArg$56856[ebp] and edx, 255 ; 000000ffH neg edx sbb edx, edx neg edx mov eax, DWORD PTR _tempPtr$56857[ebp] mov DWORD PTR [eax], edx ; 176 : arrays[i] = (int) tempPtr; mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _arrays$[ebp] mov eax, DWORD PTR _tempPtr$56857[ebp] mov DWORD PTR [edx+ecx*4], eax ; 177 : _push(tempPtr); push DWORD PTR _tempPtr$56857[ebp] $L56855: ; 183 : ; 184 : } jmp $L56812 $L56813: ; 185 : ; 186 : jint functionHandle = env->GetIntField(obj, fieldFunctionHandle); mov ecx, DWORD PTR ?fieldFunctionHandle@@3PAU_jfieldID@@A ; fieldFunctionHandle push ecx mov edx, DWORD PTR _obj$[ebp] push edx mov ecx, DWORD PTR _env$[ebp] call ?GetIntField@JNIEnv_@@QAEJPAV_jobject@@PAU_jfieldID@@@Z ; JNIEnv_::GetIntField mov DWORD PTR _functionHandle$[ebp], eax ; 187 : jint outVal; ; 188 : ; 189 : #ifdef _WINDOWS ; 190 : #ifdef _X86_ ; 191 : ; 192 : __asm { ; 193 : ; 194 : call functionHandle call DWORD PTR _functionHandle$[ebp] ; 195 : mov outVal, eax mov DWORD PTR _outVal$[ebp], eax ; 196 : ; 197 : } ; 198 : ; 199 : #endif ; 200 : #endif ; 201 : ; 202 : for (int j = 0; j < len; ++j) { mov DWORD PTR _j$[ebp], 0 jmp SHORT $L56864 $L56865: mov eax, DWORD PTR _j$[ebp] add eax, 1 mov DWORD PTR _j$[ebp], eax $L56864: mov ecx, DWORD PTR _j$[ebp] cmp ecx, DWORD PTR _len$[ebp] jge $L56866 ; 203 : param = env->GetObjectArrayElement(params, j); mov edx, DWORD PTR _j$[ebp] push edx mov eax, DWORD PTR _params$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?GetObjectArrayElement@JNIEnv_@@QAEPAV_jobject@@PAV_jobjectArray@@J@Z ; JNIEnv_::GetObjectArrayElement mov DWORD PTR _param$[ebp], eax ; 204 : if (param == NULL) {} cmp DWORD PTR _param$[ebp], 0 jne SHORT $L56867 ; 205 : else if (env->IsInstanceOf(param, classByteArray) || env->IsInstanceOf(param, classCharArray)) { jmp $L56886 $L56867: mov ecx, DWORD PTR ?classByteArray@@3PAV_jclass@@A ; classByteArray push ecx mov edx, DWORD PTR _param$[ebp] push edx mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax jne SHORT $L56870 mov eax, DWORD PTR ?classCharArray@@3PAV_jclass@@A ; classCharArray push eax mov ecx, DWORD PTR _param$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56869 $L56870: ; 206 : env->ReleasePrimitiveArrayCritical((jarray) param, (void*) arrays[j], 0); push 0 mov edx, DWORD PTR _j$[ebp] mov eax, DWORD PTR _arrays$[ebp] mov ecx, DWORD PTR [eax+edx*4] push ecx mov edx, DWORD PTR _param$[ebp] push edx mov ecx, DWORD PTR _env$[ebp] call ?ReleasePrimitiveArrayCritical@JNIEnv_@@QAEXPAV_jarray@@PAXJ@Z ; JNIEnv_::ReleasePrimitiveArrayCritical ; 208 : else if (env->IsInstanceOf(param, classHolder)) { jmp $L56886 $L56869: mov eax, DWORD PTR ?classHolder@@3PAV_jclass@@A ; classHolder push eax mov ecx, DWORD PTR _param$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je $L56886 ; 209 : ; 210 : jobject o = env->GetObjectField(param, fieldHolderO); mov edx, DWORD PTR ?fieldHolderO@@3PAU_jfieldID@@A ; fieldHolderO push edx mov eax, DWORD PTR _param$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?GetObjectField@JNIEnv_@@QAEPAV_jobject@@PAV2@PAU_jfieldID@@@Z ; JNIEnv_::GetObjectField mov DWORD PTR _o$56875[ebp], eax ; 211 : ; 212 : if (env->IsInstanceOf(o, classInteger)) { mov ecx, DWORD PTR ?classInteger@@3PAV_jclass@@A ; classInteger push ecx mov edx, DWORD PTR _o$56875[ebp] push edx mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56876 ; 213 : int* out = (int*) arrays[j]; mov eax, DWORD PTR _j$[ebp] mov ecx, DWORD PTR _arrays$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR _out$56877[ebp], edx ; 214 : env->SetObjectField(param, fieldHolderO, env->NewObject(classInteger, newIntegerInt, *out)); mov eax, DWORD PTR _out$56877[ebp] mov ecx, DWORD PTR [eax] push ecx mov edx, DWORD PTR ?newIntegerInt@@3PAU_jmethodID@@A ; newIntegerInt push edx mov eax, DWORD PTR ?classInteger@@3PAV_jclass@@A ; classInteger push eax mov ecx, DWORD PTR _env$[ebp] push ecx call ?NewObject@JNIEnv_@@QAAPAV_jobject@@PAV_jclass@@PAU_jmethodID@@ZZ ; JNIEnv_::NewObject add esp, 16 ; 00000010H push eax mov edx, DWORD PTR ?fieldHolderO@@3PAU_jfieldID@@A ; fieldHolderO push edx mov eax, DWORD PTR _param$[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?SetObjectField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@0@Z ; JNIEnv_::SetObjectField ; 215 : delete out; mov ecx, DWORD PTR _out$56877[ebp] mov DWORD PTR $T56919[ebp], ecx mov edx, DWORD PTR $T56919[ebp] push edx call ??3@YAXPAX@Z ; operator delete add esp, 4 ; 217 : else if (env->IsInstanceOf(o, classByteArray) || env->IsInstanceOf(o, classCharArray)) { jmp $L56886 $L56876: mov eax, DWORD PTR ?classByteArray@@3PAV_jclass@@A ; classByteArray push eax mov ecx, DWORD PTR _o$56875[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax jne SHORT $L56882 mov edx, DWORD PTR ?classCharArray@@3PAV_jclass@@A ; classCharArray push edx mov eax, DWORD PTR _o$56875[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56881 $L56882: ; 218 : env->ReleasePrimitiveArrayCritical((jarray) o, (void*) arrays[j], 0); push 0 mov ecx, DWORD PTR _j$[ebp] mov edx, DWORD PTR _arrays$[ebp] mov eax, DWORD PTR [edx+ecx*4] push eax mov ecx, DWORD PTR _o$56875[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?ReleasePrimitiveArrayCritical@JNIEnv_@@QAEXPAV_jarray@@PAXJ@Z ; JNIEnv_::ReleasePrimitiveArrayCritical ; 220 : else if (env->IsInstanceOf(o, classBoolean)) { jmp SHORT $L56886 $L56881: mov edx, DWORD PTR ?classBoolean@@3PAV_jclass@@A ; classBoolean push edx mov eax, DWORD PTR _o$56875[ebp] push eax mov ecx, DWORD PTR _env$[ebp] call ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ; JNIEnv_::IsInstanceOf and eax, 255 ; 000000ffH test eax, eax je SHORT $L56886 ; 221 : int* out = (int*) arrays[j]; mov ecx, DWORD PTR _j$[ebp] mov edx, DWORD PTR _arrays$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR _out$56887[ebp], eax ; 222 : env->SetObjectField(param, fieldHolderO, env->NewObject(classBoolean, newBooleanBoolean, (*out == 0 ? JNI_FALSE : JNI_TRUE))); mov ecx, DWORD PTR _out$56887[ebp] xor edx, edx cmp DWORD PTR [ecx], 0 setne dl push edx mov eax, DWORD PTR ?newBooleanBoolean@@3PAU_jmethodID@@A ; newBooleanBoolean push eax mov ecx, DWORD PTR ?classBoolean@@3PAV_jclass@@A ; classBoolean push ecx mov edx, DWORD PTR _env$[ebp] push edx call ?NewObject@JNIEnv_@@QAAPAV_jobject@@PAV_jclass@@PAU_jmethodID@@ZZ ; JNIEnv_::NewObject add esp, 16 ; 00000010H push eax mov eax, DWORD PTR ?fieldHolderO@@3PAU_jfieldID@@A ; fieldHolderO push eax mov ecx, DWORD PTR _param$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?SetObjectField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@0@Z ; JNIEnv_::SetObjectField ; 223 : delete out; mov edx, DWORD PTR _out$56887[ebp] mov DWORD PTR $T56920[ebp], edx mov eax, DWORD PTR $T56920[ebp] push eax call ??3@YAXPAX@Z ; operator delete add esp, 4 $L56886: ; 227 : ; 228 : } jmp $L56865 $L56866: ; 229 : ; 230 : delete [] arrays; mov ecx, DWORD PTR _arrays$[ebp] mov DWORD PTR $T56921[ebp], ecx mov edx, DWORD PTR $T56921[ebp] push edx call ??3@YAXPAX@Z ; operator delete add esp, 4 ; 231 : ; 232 : env->SetIntField(obj, fieldLastErrorCode, GetLastError()); mov esi, esp call DWORD PTR __imp__GetLastError@0 cmp esi, esp call __chkesp push eax mov eax, DWORD PTR ?fieldLastErrorCode@@3PAU_jfieldID@@A ; fieldLastErrorCode push eax mov ecx, DWORD PTR _obj$[ebp] push ecx mov ecx, DWORD PTR _env$[ebp] call ?SetIntField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@J@Z ; JNIEnv_::SetIntField ; 233 : ; 234 : return outVal; mov eax, DWORD PTR _outVal$[ebp] $L56801: ; 235 : ; 236 : } pop edi pop esi pop ebx add esp, 172 ; 000000acH cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 12 ; 0000000cH _Java_com_eaio_nativecall_IntCall_executeCall0@12 ENDP _TEXT ENDS ; COMDAT ?FindClass@JNIEnv_@@QAEPAV_jclass@@PBD@Z _TEXT SEGMENT _this$ = -4 _name$ = 8 ?FindClass@JNIEnv_@@QAEPAV_jclass@@PBD@Z PROC NEAR ; JNIEnv_::FindClass, COMDAT ; 759 : jclass FindClass(const char *name) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 760 : return functions->FindClass(this, name); mov esi, esp mov eax, DWORD PTR _name$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx] call DWORD PTR [eax+24] cmp esi, esp call __chkesp ; 761 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 4 ?FindClass@JNIEnv_@@QAEPAV_jclass@@PBD@Z ENDP ; JNIEnv_::FindClass _TEXT ENDS ; COMDAT ?ThrowNew@JNIEnv_@@QAEJPAV_jclass@@PBD@Z _TEXT SEGMENT _this$ = -4 _clazz$ = 8 _msg$ = 12 ?ThrowNew@JNIEnv_@@QAEJPAV_jclass@@PBD@Z PROC NEAR ; JNIEnv_::ThrowNew, COMDAT ; 787 : jint ThrowNew(jclass clazz, const char *msg) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 788 : return functions->ThrowNew(this, clazz, msg); mov esi, esp mov eax, DWORD PTR _msg$[ebp] push eax mov ecx, DWORD PTR _clazz$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax] call DWORD PTR [ecx+56] cmp esi, esp call __chkesp ; 789 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 8 ?ThrowNew@JNIEnv_@@QAEJPAV_jclass@@PBD@Z ENDP ; JNIEnv_::ThrowNew _TEXT ENDS ; COMDAT ?NewObject@JNIEnv_@@QAAPAV_jobject@@PAV_jclass@@PAU_jmethodID@@ZZ _TEXT SEGMENT _this$ = 8 _args$ = -4 _result$ = -8 _clazz$ = 12 _methodID$ = 16 ?NewObject@JNIEnv_@@QAAPAV_jobject@@PAV_jclass@@PAU_jmethodID@@ZZ PROC NEAR ; JNIEnv_::NewObject, COMDAT ; 834 : jobject NewObject(jclass clazz, jmethodID methodID, ...) { push ebp mov ebp, esp sub esp, 72 ; 00000048H push ebx push esi push edi lea edi, DWORD PTR [ebp-72] mov ecx, 18 ; 00000012H mov eax, -858993460 ; ccccccccH rep stosd ; 835 : va_list args; ; 836 : jobject result; ; 837 : va_start(args, methodID); lea eax, DWORD PTR _methodID$[ebp+4] mov DWORD PTR _args$[ebp], eax ; 838 : result = functions->NewObjectV(this,clazz,methodID,args); mov esi, esp mov ecx, DWORD PTR _args$[ebp] push ecx mov edx, DWORD PTR _methodID$[ebp] push edx mov eax, DWORD PTR _clazz$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx] call DWORD PTR [eax+116] cmp esi, esp call __chkesp mov DWORD PTR _result$[ebp], eax ; 839 : va_end(args); mov DWORD PTR _args$[ebp], 0 ; 840 : return result; mov eax, DWORD PTR _result$[ebp] ; 841 : } pop edi pop esi pop ebx add esp, 72 ; 00000048H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 0 ?NewObject@JNIEnv_@@QAAPAV_jobject@@PAV_jclass@@PAU_jmethodID@@ZZ ENDP ; JNIEnv_::NewObject _TEXT ENDS ; COMDAT ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z _TEXT SEGMENT _this$ = -4 _obj$ = 8 _clazz$ = 12 ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z PROC NEAR ; JNIEnv_::IsInstanceOf, COMDAT ; 854 : jboolean IsInstanceOf(jobject obj, jclass clazz) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 855 : return functions->IsInstanceOf(this,obj,clazz); mov esi, esp mov eax, DWORD PTR _clazz$[ebp] push eax mov ecx, DWORD PTR _obj$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax] call DWORD PTR [ecx+128] cmp esi, esp call __chkesp ; 856 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 8 ?IsInstanceOf@JNIEnv_@@QAEEPAV_jobject@@PAV_jclass@@@Z ENDP ; JNIEnv_::IsInstanceOf _TEXT ENDS ; COMDAT ?CallBooleanMethod@JNIEnv_@@QAAEPAV_jobject@@PAU_jmethodID@@ZZ _TEXT SEGMENT _this$ = 8 _args$ = -4 _result$ = -8 _obj$ = 12 _methodID$ = 16 ?CallBooleanMethod@JNIEnv_@@QAAEPAV_jobject@@PAU_jmethodID@@ZZ PROC NEAR ; JNIEnv_::CallBooleanMethod, COMDAT ; 881 : jmethodID methodID, ...) { push ebp mov ebp, esp sub esp, 72 ; 00000048H push ebx push esi push edi lea edi, DWORD PTR [ebp-72] mov ecx, 18 ; 00000012H mov eax, -858993460 ; ccccccccH rep stosd ; 882 : va_list args; ; 883 : jboolean result; ; 884 : va_start(args,methodID); lea eax, DWORD PTR _methodID$[ebp+4] mov DWORD PTR _args$[ebp], eax ; 885 : result = functions->CallBooleanMethodV(this,obj,methodID,args); mov esi, esp mov ecx, DWORD PTR _args$[ebp] push ecx mov edx, DWORD PTR _methodID$[ebp] push edx mov eax, DWORD PTR _obj$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx] call DWORD PTR [eax+152] cmp esi, esp call __chkesp mov BYTE PTR _result$[ebp], al ; 886 : va_end(args); mov DWORD PTR _args$[ebp], 0 ; 887 : return result; mov al, BYTE PTR _result$[ebp] ; 888 : } pop edi pop esi pop ebx add esp, 72 ; 00000048H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 0 ?CallBooleanMethod@JNIEnv_@@QAAEPAV_jobject@@PAU_jmethodID@@ZZ ENDP ; JNIEnv_::CallBooleanMethod _TEXT ENDS ; COMDAT ?CallIntMethod@JNIEnv_@@QAAJPAV_jobject@@PAU_jmethodID@@ZZ _TEXT SEGMENT _this$ = 8 _args$ = -4 _result$ = -8 _obj$ = 12 _methodID$ = 16 ?CallIntMethod@JNIEnv_@@QAAJPAV_jobject@@PAU_jmethodID@@ZZ PROC NEAR ; JNIEnv_::CallIntMethod, COMDAT ; 949 : jint CallIntMethod(jobject obj, jmethodID methodID, ...) { push ebp mov ebp, esp sub esp, 72 ; 00000048H push ebx push esi push edi lea edi, DWORD PTR [ebp-72] mov ecx, 18 ; 00000012H mov eax, -858993460 ; ccccccccH rep stosd ; 950 : va_list args; ; 951 : jint result; ; 952 : va_start(args,methodID); lea eax, DWORD PTR _methodID$[ebp+4] mov DWORD PTR _args$[ebp], eax ; 953 : result = functions->CallIntMethodV(this,obj,methodID,args); mov esi, esp mov ecx, DWORD PTR _args$[ebp] push ecx mov edx, DWORD PTR _methodID$[ebp] push edx mov eax, DWORD PTR _obj$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx] call DWORD PTR [eax+200] cmp esi, esp call __chkesp mov DWORD PTR _result$[ebp], eax ; 954 : va_end(args); mov DWORD PTR _args$[ebp], 0 ; 955 : return result; mov eax, DWORD PTR _result$[ebp] ; 956 : } pop edi pop esi pop ebx add esp, 72 ; 00000048H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 0 ?CallIntMethod@JNIEnv_@@QAAJPAV_jobject@@PAU_jmethodID@@ZZ ENDP ; JNIEnv_::CallIntMethod _TEXT ENDS ; COMDAT ?GetObjectField@JNIEnv_@@QAEPAV_jobject@@PAV2@PAU_jfieldID@@@Z _TEXT SEGMENT _obj$ = 8 _fieldID$ = 12 _this$ = -4 ?GetObjectField@JNIEnv_@@QAEPAV_jobject@@PAV2@PAU_jfieldID@@@Z PROC NEAR ; JNIEnv_::GetObjectField, COMDAT ; 1248 : jobject GetObjectField(jobject obj, jfieldID fieldID) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1249 : return functions->GetObjectField(this,obj,fieldID); mov esi, esp mov eax, DWORD PTR _fieldID$[ebp] push eax mov ecx, DWORD PTR _obj$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax] call DWORD PTR [ecx+380] cmp esi, esp call __chkesp ; 1250 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 8 ?GetObjectField@JNIEnv_@@QAEPAV_jobject@@PAV2@PAU_jfieldID@@@Z ENDP ; JNIEnv_::GetObjectField _TEXT ENDS ; COMDAT ?GetIntField@JNIEnv_@@QAEJPAV_jobject@@PAU_jfieldID@@@Z _TEXT SEGMENT _obj$ = 8 _fieldID$ = 12 _this$ = -4 ?GetIntField@JNIEnv_@@QAEJPAV_jobject@@PAU_jfieldID@@@Z PROC NEAR ; JNIEnv_::GetIntField, COMDAT ; 1263 : jint GetIntField(jobject obj, jfieldID fieldID) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1264 : return functions->GetIntField(this,obj,fieldID); mov esi, esp mov eax, DWORD PTR _fieldID$[ebp] push eax mov ecx, DWORD PTR _obj$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax] call DWORD PTR [ecx+400] cmp esi, esp call __chkesp ; 1265 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 8 ?GetIntField@JNIEnv_@@QAEJPAV_jobject@@PAU_jfieldID@@@Z ENDP ; JNIEnv_::GetIntField _TEXT ENDS ; COMDAT ?SetObjectField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@0@Z _TEXT SEGMENT _obj$ = 8 _fieldID$ = 12 _val$ = 16 _this$ = -4 ?SetObjectField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@0@Z PROC NEAR ; JNIEnv_::SetObjectField, COMDAT ; 1276 : void SetObjectField(jobject obj, jfieldID fieldID, jobject val) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1277 : functions->SetObjectField(this,obj,fieldID,val); mov esi, esp mov eax, DWORD PTR _val$[ebp] push eax mov ecx, DWORD PTR _fieldID$[ebp] push ecx mov edx, DWORD PTR _obj$[ebp] push edx mov eax, DWORD PTR _this$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx] call DWORD PTR [edx+416] cmp esi, esp call __chkesp ; 1278 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 12 ; 0000000cH ?SetObjectField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@0@Z ENDP ; JNIEnv_::SetObjectField _TEXT ENDS ; COMDAT ?SetIntField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@J@Z _TEXT SEGMENT _obj$ = 8 _fieldID$ = 12 _val$ = 16 _this$ = -4 ?SetIntField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@J@Z PROC NEAR ; JNIEnv_::SetIntField, COMDAT ; 1296 : jint val) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1297 : functions->SetIntField(this,obj,fieldID,val); mov esi, esp mov eax, DWORD PTR _val$[ebp] push eax mov ecx, DWORD PTR _fieldID$[ebp] push ecx mov edx, DWORD PTR _obj$[ebp] push edx mov eax, DWORD PTR _this$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx] call DWORD PTR [edx+436] cmp esi, esp call __chkesp ; 1298 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 12 ; 0000000cH ?SetIntField@JNIEnv_@@QAEXPAV_jobject@@PAU_jfieldID@@J@Z ENDP ; JNIEnv_::SetIntField _TEXT ENDS ; COMDAT ?GetArrayLength@JNIEnv_@@QAEJPAV_jarray@@@Z _TEXT SEGMENT _this$ = -4 _array$ = 8 ?GetArrayLength@JNIEnv_@@QAEJPAV_jarray@@@Z PROC NEAR ; JNIEnv_::GetArrayLength, COMDAT ; 1589 : jsize GetArrayLength(jarray array) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1590 : return functions->GetArrayLength(this,array); mov esi, esp mov eax, DWORD PTR _array$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx] call DWORD PTR [eax+684] cmp esi, esp call __chkesp ; 1591 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 4 ?GetArrayLength@JNIEnv_@@QAEJPAV_jarray@@@Z ENDP ; JNIEnv_::GetArrayLength _TEXT ENDS ; COMDAT ?GetObjectArrayElement@JNIEnv_@@QAEPAV_jobject@@PAV_jobjectArray@@J@Z _TEXT SEGMENT _this$ = -4 _array$ = 8 _index$ = 12 ?GetObjectArrayElement@JNIEnv_@@QAEPAV_jobject@@PAV_jobjectArray@@J@Z PROC NEAR ; JNIEnv_::GetObjectArrayElement, COMDAT ; 1597 : jobject GetObjectArrayElement(jobjectArray array, jsize index) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1598 : return functions->GetObjectArrayElement(this,array,index); mov esi, esp mov eax, DWORD PTR _index$[ebp] push eax mov ecx, DWORD PTR _array$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax] call DWORD PTR [ecx+692] cmp esi, esp call __chkesp ; 1599 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 8 ?GetObjectArrayElement@JNIEnv_@@QAEPAV_jobject@@PAV_jobjectArray@@J@Z ENDP ; JNIEnv_::GetObjectArrayElement _TEXT ENDS ; COMDAT ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z _TEXT SEGMENT _this$ = -4 _array$ = 8 _isCopy$ = 12 ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z PROC NEAR ; JNIEnv_::GetPrimitiveArrayCritical, COMDAT ; 1788 : void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1789 : return functions->GetPrimitiveArrayCritical(this,array,isCopy); mov esi, esp mov eax, DWORD PTR _isCopy$[ebp] push eax mov ecx, DWORD PTR _array$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax] call DWORD PTR [ecx+888] cmp esi, esp call __chkesp ; 1790 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 8 ?GetPrimitiveArrayCritical@JNIEnv_@@QAEPAXPAV_jarray@@PAE@Z ENDP ; JNIEnv_::GetPrimitiveArrayCritical _TEXT ENDS ; COMDAT ?ReleasePrimitiveArrayCritical@JNIEnv_@@QAEXPAV_jarray@@PAXJ@Z _TEXT SEGMENT _this$ = -4 _array$ = 8 _carray$ = 12 _mode$ = 16 ?ReleasePrimitiveArrayCritical@JNIEnv_@@QAEXPAV_jarray@@PAXJ@Z PROC NEAR ; JNIEnv_::ReleasePrimitiveArrayCritical, COMDAT ; 1791 : void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) { push ebp mov ebp, esp sub esp, 68 ; 00000044H push ebx push esi push edi push ecx lea edi, DWORD PTR [ebp-68] mov ecx, 17 ; 00000011H mov eax, -858993460 ; ccccccccH rep stosd pop ecx mov DWORD PTR _this$[ebp], ecx ; 1792 : functions->ReleasePrimitiveArrayCritical(this,array,carray,mode); mov esi, esp mov eax, DWORD PTR _mode$[ebp] push eax mov ecx, DWORD PTR _carray$[ebp] push ecx mov edx, DWORD PTR _array$[ebp] push edx mov eax, DWORD PTR _this$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx] call DWORD PTR [edx+892] cmp esi, esp call __chkesp ; 1793 : } pop edi pop esi pop ebx add esp, 68 ; 00000044H cmp ebp, esp call __chkesp mov esp, ebp pop ebp ret 12 ; 0000000cH ?ReleasePrimitiveArrayCritical@JNIEnv_@@QAEXPAV_jarray@@PAXJ@Z ENDP ; JNIEnv_::ReleasePrimitiveArrayCritical _TEXT ENDS END