Files
mimis/vendor/nativecall/0.4.1/cpp/Debug/IntCall.asm
2012-05-28 21:38:38 +02:00

1767 lines
43 KiB
NASM

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