Function at 0x4037b6
Capabilities:
Accept command line arguments
Create process on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
push ebx
push esi
push edi
lea eax, [ebp - 0x12c]
push 0x105
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x403c88
cmp eax, 0x104
jg 0x403c88
cmp byte [0x40b0e2], 0
mov esi, dword [ebp + 8]
je 0x403814
mov edi, dword [sym.imp.MSVCRT.dll_printf]
lea eax, [ebp - 0x12c]
push eax
push str.ExecJRE:_old:__s_n
call edi
push esi
push str.ExecJRE:_new:__s_n
call edi
add esp, 0x10
or ebx, 0xffffffff
mov edi, esi
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebp - 0x12c]
push ecx
push eax
push esi
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x403ca5
mov edi, esi
mov ecx, ebx
xor eax, eax
lea edx, [ebp - 0x12c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
mov ecx, ebx
repne scasb al, byte es:[edi]
dec edi
mov esi, str._bin_
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, edx
mov ecx, ebx
repne scasb al, byte es:[edi]
dec edi
mov esi, str.java
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x12c]
mov ecx, ebx
repne scasb al, byte es:[edi]
dec edi
mov esi, str..exe
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
call dword [sym.imp.MSVCRT.dll__strdup]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00403caa
mov edi, dword [ebp - 4]
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp - 0x12c]
mov edx, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 4]
push eax
call fcn.004020c4
mov esi, dword [sym.imp.MSVCRT.dll_strchr]
mov edi, eax
lea eax, [ebp - 0x12c]
push 0x20
push eax
mov dword [ebp + 8], edi
call esi
add esp, 0x14
test eax, eax
jne 0x403926
lea eax, [ebp - 0x12c]
push 9
push eax
call esi
pop ecx
test eax, eax
pop ecx
jne 0x403926
lea edi, [ebp - 0x12c]
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 8]
mov eax, ecx
mov dword [ebp + 8], edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x403972
mov ax, word [0x409afc]
mov ecx, ebx
mov word [edi], ax
lea edi, [ebp - 0x12c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 8]
mov dword [ebp - 8], ecx
mov edx, edi
mov ecx, ebx
repne scasb al, byte es:[edi]
mov eax, dword [ebp - 8]
dec edi
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
mov ecx, ebx
mov dword [ebp + 8], edi
mov esi, 0x409af8
repne scasb al, byte es:[edi]
dec edi
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 4]
cmp byte [eax], 0
je 0x403b69
lea eax, [ebp - 4]
push eax
call fcn.00403caa
cmp byte [eax], 0
pop ecx
mov dword [ebp - 8], eax
je 0x403972
push eax
call fcn.00403d41
cmp byte [eax], 0x2d
pop ecx
mov dword [ebp - 0xc], eax
jne 0x403adf
push 0xb
mov edi, str._classpath
mov esi, eax
pop ecx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x403a3a
push 4
mov edi, 0x409b0c
mov esi, eax
pop ecx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x403a3a
push 9
push str._version:
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x403ad0
mov esi, dword [ebp - 0xc]
push 0x15
mov edi, str._jre_restrict_search
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x403ad0
mov esi, dword [ebp - 0xc]
push 0x18
mov edi, str._no_jre_restrict_search
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x403ad0
mov edi, dword [ebp + 8]
mov ecx, ebx
mov edx, edi
mov esi, 0x409b54
repne scasb al, byte es:[edi]
dec edi
mov ecx, ebx
movsw word es:[edi], word [esi]
mov edi, dword [ebp - 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov dword [ebp + 8], ecx
mov edi, edx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 8]
dec edi
jmp 0x403abf
mov edi, dword [ebp + 8]
mov ecx, ebx
mov edx, edi
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov esi, 0x409b10
movsw word es:[edi], word [esi]
mov edi, dword [ebp - 8]
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov dword [ebp + 8], ecx
mov edi, edx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 8]
dec edi
mov ecx, eax
mov dword [ebp + 8], edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 4]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00403caa
mov edx, eax
pop ecx
cmp byte [edx], 0
je 0x403ad0
mov edi, dword [ebp + 8]
mov ecx, ebx
mov esi, edi
xor eax, eax
repne scasb al, byte es:[edi]
mov dword [ebp + 8], esi
dec edi
mov esi, 0x409b14
mov ecx, ebx
movsw word es:[edi], word [esi]
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 8]
not ecx
sub edi, ecx
mov esi, edi
mov edi, eax
mov dword [ebp - 8], ecx
mov edx, edi
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebp - 8]
dec edi
mov ecx, eax
mov dword [ebp + 8], edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [ebp - 0xc]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
jmp 0x403972
mov edi, dword [ebp + 8]
mov ecx, ebx
mov edx, edi
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov esi, 0x409b58
movsw word es:[edi], word [esi]
mov edi, dword [ebp - 8]
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push dword [ebp - 0xc]
mov esi, edi
mov edi, edx
mov edx, ecx
mov dword [ebp + 8], edi
mov ecx, ebx
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 8]
mov dword [ebp + 8], edx
mov edx, edi
mov ecx, ebx
mov esi, 0x409b5c
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 8]
dec edi
movsw word es:[edi], word [esi]
mov edi, eax
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov dword [ebp + 8], ecx
mov edi, edx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 8]
dec edi
mov ecx, eax
mov dword [ebp + 8], edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
push dword [ebp - 0x14]
call dword [sym.imp.MSVCRT.dll_free]
cmp byte [0x40b0e2], 0
pop ecx
je 0x403bbc
push dword [ebp + 8]
call dword [sym.imp.MSVCRT.dll__strdup]
mov edi, eax
lea eax, [ebp - 4]
push eax
mov dword [ebp - 4], edi
call fcn.00403caa
mov esi, dword [sym.imp.MSVCRT.dll_printf]
push eax
lea eax, [ebp - 0x12c]
push eax
push 0x409b60
call esi
push dword [ebp - 4]
push str.ReExec_Args:__s_n
call esi
push edi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 0x20
mov eax, dword [sym.imp.MSVCRT.dll__iob]
mov esi, dword [sym.imp.MSVCRT.dll_fflush]
add eax, 0x20
push eax
call esi
mov eax, dword [sym.imp.MSVCRT.dll__iob]
add eax, 0x40
push eax
call esi
pop ecx
xor eax, eax
pop ecx
lea edi, [ebp - 0x170]
push 0x11
pop ecx
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x24]
mov dword [ebp - 0x170], 0x44
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x170]
push eax
xor eax, eax
push eax
push eax
push eax
push 1
pop esi
push esi
push eax
push eax
lea eax, [ebp - 0x12c]
push dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x403c3e
lea eax, [ebp - 0x12c]
push esi
push eax
push str.CreateProcess__s__...__failed
call fcn.004035cf
add esp, 0xc
push esi
call dword [sym.imp.MSVCRT.dll_exit]
push ebx
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
je 0x403c5f
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x403c6f
jmp 0x403c6c
push esi
push str.WaitForSingleObject___failed.
call fcn.004035ac
pop ecx
pop ecx
mov dword [ebp - 0x10], esi
push dword [ebp - 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x24]
call esi
push dword [ebp - 0x10]
call dword [sym.imp.MSVCRT.dll_exit]
push 1
pop esi
push esi
push str.java
push str.Unable_to_resolve_path_to_current__s_executable.
call fcn.004035cf
add esp, 0xc
push esi
call dword [sym.imp.MSVCRT.dll_exit]
pop edi
pop esi
pop ebx
leave
ret