Function at 0x403620
Capabilities:
Check mutex on windows
Extract resource via kernel32 functions
Get common file path
Get memory capacity
Query environment variable
Read file on windows
Set environment variable
Write file on windows

Disassembly:
push ebp
mov eax, 0x28908
mov ebp, esp
call fcn.004050a0
mov dword [ebp - 0xc], ebx
xor edx, edx
mov ecx, 0x8000
mov dword [ebp - 8], esi
lea eax, [ebp - 0x8018]
mov dword [ebp - 4], edi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [esp], 0
call sub.KERNEL32.dll_GetModuleHandleA
mov dword [0x410c70], eax
sub esp, 4
xor edx, edx
test eax, eax
jne 0x403680
mov ebx, dword [ebp - 0xc]
mov eax, edx
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
xor edx, edx
mov ecx, 0x104
lea edi, [ebp - 0x8128]
mov dword [esp], edi
mov esi, 0x104
lea edi, [ebp - 0x8128]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memset
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov ebx, dword [0x410c70]
mov dword [esp], ebx
call sub.KERNEL32.dll_GetModuleFileNameA
sub esp, 0xc
test eax, eax
je 0x4039c0
mov dword [esp], edi
mov esi, 0x5c
mov dword [esp + 4], esi
call sub.msvcrt.dll_strrchr
sub eax, edi
mov dword [ebp - 0x288c8], eax
inc eax
je 0x4039c0
mov edi, str.__l4j_debug
mov dword [esp + 4], edi
mov edi, dword [ebp + 8]
mov dword [esp], edi
call sub.msvcrt.dll_strstr
test eax, eax
je 0x4037a5
lea ebx, [ebp - 0x8238]
xor ecx, ecx
mov esi, 0x104
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov esi, 0x3468636e
mov dword [esp], ebx
call sub.msvcrt.dll_memset
mov edx, dword [ebp - 0x288c8]
lea eax, [ebp - 0x8128]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], edx
call sub.msvcrt.dll_strncpy
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [eax + ebx], 0x75616c5c
mov edx, 0x407060
mov ecx, 0x6f6c2e6a
mov dword [eax + ebx + 4], esi
mov dword [eax + ebx + 8], ecx
mov word [eax + ebx + 0xc], 0x67
mov dword [esp + 4], edx
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
mov dword [0x410c20], eax
xor edx, edx
test eax, eax
je 0x40366d
mov dword [esp + 0xc], edi
lea ebx, [ebp - 0x8128]
mov edi, str._n_nCmdLine:_t_s__s_n
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], str.kernel32
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, str.IsWow64Process
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
test eax, eax
mov ebx, eax
je 0x4037e4
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [esp], eax
mov ecx, 0x410ba4
mov dword [esp + 4], ecx
call ebx
sub esp, 8
mov eax, dword [0x410c20]
test eax, eax
je 0x403816
mov esi, dword [0x410ba4]
mov edx, 0x40707a
test esi, esi
jne 0x403801
mov edx, 0x40707e
mov dword [esp + 8], edx
mov edi, str.WOW64:_t_t_s_n
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 0x16
mov edx, 0x410a20
mov ebx, str.Launch4j
mov dword [esp + 4], edx
call fcn.00401e10
mov dword [esp + 4], ebx
mov dword [esp], 0xa
call fcn.00401e10
mov dword [esp], 0x65
mov eax, 0x410620
mov dword [esp + 4], eax
call fcn.00401e10
xor edx, edx
test eax, eax
je 0x40366d
mov dword [esp], 0x17
mov ecx, 0x410b20
mov dword [esp + 4], ecx
call fcn.00401e10
cmp byte [0x410b20], 0
je 0x4038cb
mov ecx, 0xc
mov edx, 1
xor ebx, ebx
mov dword [ebp - 0x8248], ecx
mov eax, 0x410b20
xor edi, edi
mov dword [ebp - 0x8240], edx
lea esi, [ebp - 0x8248]
mov dword [ebp - 0x8244], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.KERNEL32.dll_CreateMutexA
sub esp, 0xc
call sub.KERNEL32.dll_GetLastError
cmp eax, 0xb7
je 0x404a82
xor ecx, ecx
lea edx, [ebp - 0x8358]
mov esi, 0x104
mov dword [esp + 4], ecx
mov ebx, 0x410260
mov dword [esp], edx
mov dword [esp + 8], esi
call sub.msvcrt.dll_memset
mov dword [esp + 4], ebx
mov dword [esp], 0x104
call sub.KERNEL32.dll_GetCurrentDirectoryA
sub esp, 8
lea eax, [ebp - 0x8358]
mov dword [esp + 4], eax
mov dword [esp], 8
call fcn.00401e10
test eax, eax
jne 0x403c49
mov dword [esp], 1
lea edi, [ebp - 0x8358]
mov dword [esp + 4], edi
call fcn.00401e10
test eax, eax
jne 0x403bd4
xor ebx, ebx
cmp byte [0x410020], 0
jne 0x403b6c
mov edx, dword [0x410c20]
test edx, edx
je 0x403982
test ebx, ebx
mov eax, str._OK_
jne 0x403963
mov eax, str._n_a_
mov dword [esp + 0xc], eax
lea esi, [ebp - 0x10468]
mov ecx, str.Check_launcher:_t_s__s_n
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_fprintf
test ebx, ebx
jne 0x4039d1
mov dword [esp], 2
mov edi, 0x4105a0
mov dword [esp + 4], edi
call fcn.00401e10
test eax, eax
jne 0x403cd8
mov dword [esp], 0x66
mov ebx, 0x410620
mov dword [esp + 4], ebx
call fcn.00401e10
nop
lea esi, [esi]
mov ebx, dword [ebp - 0xc]
xor edx, edx
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
mov eax, edx
pop ebp
ret
mov esi, 0x410020
mov edi, 0x7fff
lea ebx, [ebp - 0x18598]
mov dword [esp + 4], esi
lea esi, [ebp - 0x10598]
mov dword [esp], esi
call sub.msvcrt.dll_strcpy
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov dword [eax + esi], 0x6e69625c
xor edx, edx
mov byte [eax + esi + 4], 0
lea eax, [ebp - 0x18598]
mov dword [esp + 8], edi
mov edi, 0x7ffe
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [esp + 4], ebx
mov ecx, 0x7fff
mov dword [esp + 8], ecx
mov dword [esp], str.Path
call sub.KERNEL32.dll_GetEnvironmentVariableA
sub esp, 0xc
sub edi, eax
mov dword [esp], esi
call sub.msvcrt.dll_strlen
cmp edi, eax
jb 0x4039c0
lea edi, [ebp - 0x18598]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov edx, 0x3b
mov word [eax + ebp - 0x18598], dx
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.msvcrt.dll_strcat
mov dword [esp + 4], edi
mov dword [esp], str.Path
call sub.KERNEL32.dll_SetEnvironmentVariableA
sub esp, 8
test eax, eax
je 0x4039c0
lea esi, [ebp - 0x20598]
mov edi, 0x7fff
xor ebx, ebx
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.msvcrt.dll_memset
mov dword [esp + 4], esi
mov dword [esp], 0x13
call fcn.00401e10
mov dword [esp], esi
mov eax, 0x40733b
mov dword [esp + 4], eax
jmp 0x403af4
mov dword [esp], ebx
lea edx, [ebp - 0x8018]
mov dword [esp + 4], edx
call sub.KERNEL32.dll_SetEnvironmentVariableA
sub esp, 8
mov eax, 0x40733b
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.msvcrt.dll_strtok
test eax, eax
mov ebx, eax
je 0x403f56
mov dword [esp], eax
mov esi, 0x3d
lea edi, [ebp - 0x8018]
mov dword [esp + 4], esi
call sub.msvcrt.dll_strchr
mov byte [eax], 0
lea ecx, [ebp - 0x8128]
mov edx, dword [ebp - 0x288c8]
mov byte [ebp - 0x8018], 0
inc eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00402fe0
mov eax, dword [0x410c20]
test eax, eax
je 0x403acf
mov dword [esp + 0xc], edi
mov edi, str.Set_var:_t_s___s_n
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x403acf
mov ebx, 0x410020
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x10468]
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov esi, dword [0x410ba8]
test esi, esi
je 0x403df6
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp byte [eax + ebx - 1], 0x5c
je 0x403ba6
mov word [eax + ebx], 0x5c
mov edi, str.binjava.exe
mov dword [esp + 4], edi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
mov edx, 0x410c30
xor ebx, ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll__stat
test eax, eax
sete bl
jmp 0x40394b
xor ecx, ecx
lea ebx, [ebp - 0x10358]
mov esi, 0x8000
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp], ebx
call sub.msvcrt.dll_memset
mov edx, dword [ebp - 0x288c8]
lea eax, [ebp - 0x8128]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp + 0xc], edx
mov dword [esp], ebx
call fcn.00402fe0
mov eax, dword [0x410c20]
test eax, eax
jne 0x403e6f
cmp byte [ebp - 0x10358], 0x5c
je 0x403c34
cmp byte [ebp - 0x10357], 0x3a
jne 0x403e19
mov dword [esp + 4], ebx
mov dword [esp], 0x410020
call sub.msvcrt.dll_strcpy
jmp 0x40393c
mov eax, dword [ebp - 0x288c8]
lea edi, [ebp - 0x8128]
mov dword [esp + 4], edi
mov dword [esp], 0x410140
mov dword [esp + 8], eax
call sub.msvcrt.dll_strncpy
mov dword [esp], 0x410140
call sub.msvcrt.dll_strlen
cmp byte [eax + 0x41013f], 0x5c
je 0x403c8a
mov ebx, 0x5c
mov word [eax + 0x410140], bx
mov dword [esp], 0x410140
lea edx, [ebp - 0x8358]
mov dword [esp + 4], edx
call sub.msvcrt.dll_strcat
mov dword [esp], 0x410140
call sub.msvcrt.dll__chdir
mov eax, dword [0x410c20]
test eax, eax
je 0x40391e
mov dword [esp], eax
mov esi, 0x410140
mov ecx, str.Working_dir:_t_s_n
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
call sub.msvcrt.dll_fprintf
jmp 0x40391e
mov dword [esp], 3
mov edx, 0x410520
lea edi, [ebp - 0x10488]
mov dword [esp + 4], edx
mov esi, 0x400
call fcn.00401e10
cld
mov eax, ebx
mov ecx, 5
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], esi
mov ecx, 0x12
mov edx, 0xa
mov dword [esp + 8], ecx
lea ebx, [ebp - 0x10488]
mov dword [esp + 4], edx
mov eax, dword [0x410c70]
mov dword [esp], eax
call sub.KERNEL32.dll_FindResourceExA
sub esp, 0x10
test eax, eax
je 0x40475a
mov dword [esp + 4], eax
mov esi, dword [0x410c70]
mov dword [esp], esi
call sub.KERNEL32.dll_LoadResource
sub esp, 8
test eax, eax
je 0x403d6e
mov dword [esp], eax
call sub.KERNEL32.dll_LockResource
sub esp, 4
test eax, eax
mov ecx, eax
je 0x403d6e
xor edx, edx
movzx eax, byte [edx + ecx]
mov byte [edx + ebx], al
inc edx
test al, al
jne 0x403d62
mov dword [esp], ebx
call sub.msvcrt.dll_atoi
mov dword [esp + 4], eax
mov dword [esp], 0x410020
call fcn.00402640
test eax, eax
je 0x403e89
xor ebx, ebx
cmp byte [0x410020], 0
jne 0x4046f6
mov edx, dword [0x410c20]
test edx, edx
je 0x403dd4
test ebx, ebx
mov eax, str._OK_
jne 0x403db5
mov eax, str._n_a_
mov dword [esp + 0xc], eax
mov esi, str.Check_launcher:_t_s__s_n
lea eax, [ebp - 0x10598]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edx
call sub.msvcrt.dll_fprintf
test ebx, ebx
jne 0x4039d1
mov dword [esp], 0x68
mov edx, 0x410620
mov dword [esp + 4], edx
call fcn.00401e10
jmp 0x4039c0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp byte [eax + ebx - 1], 0x5c
je 0x403e0b
mov word [eax + ebx], 0x5c
mov eax, str.binjavaw.exe
mov dword [esp + 4], eax
jmp 0x403baf
mov edx, dword [ebp - 0x288c8]
lea eax, [ebp - 0x8128]
mov dword [esp + 4], eax
mov dword [esp], 0x410020
mov dword [esp + 8], edx
call sub.msvcrt.dll_strncpy
mov dword [esp], 0x410020
call sub.msvcrt.dll_strlen
cmp byte [eax + 0x41001f], 0x5c
je 0x403e5a
mov ecx, 0x5c
mov word [eax + 0x410020], cx
mov dword [esp + 4], ebx
mov dword [esp], 0x410020
call sub.msvcrt.dll_strcat
jmp 0x40393c
mov dword [esp + 8], ebx
mov edi, str.Bundled_JRE:_t_s_n
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x403c1e
mov dword [esp], 0x67
mov ebx, 0x410620
mov dword [esp + 4], ebx
call fcn.00401e10
mov ecx, 0x410620
mov edi, dword [ecx]
add ecx, 4
lea edx, [edi - 0x1010101]
not edi
and edx, edi
mov eax, edx
and eax, 0x80808080
je 0x403ea3
and edx, 0x8080
jne 0x403ec9
shr eax, 0x10
add ecx, 2
add al, al
sbb ecx, 3
mov word [ecx], 0x20
mov ecx, 0x4105a0
mov dword [esp + 4], ecx
mov dword [esp], 0x410620
call sub.msvcrt.dll_strcat
cmp byte [0x410520], 0
je 0x403f3c
mov ecx, 0x410620
mov esi, dword [ecx]
add ecx, 4
lea edx, [esi - 0x1010101]
not esi
and edx, esi
mov eax, edx
and eax, 0x80808080
je 0x403ef6
and edx, 0x8080
jne 0x403f1c
shr eax, 0x10
add ecx, 2
add al, al
mov edx, 0x410520
sbb ecx, 3
mov dword [ecx], 0x202d20
mov dword [esp + 4], edx
mov dword [esp], 0x410620
call sub.msvcrt.dll_strcat
mov dword [esp], 0x15
mov eax, 0x410a20
mov dword [esp + 4], eax
call fcn.00401e10
jmp 0x4039c0
cld
xor eax, eax
mov byte [ebp - 0x8018], 0
lea edx, [ebp - 0x10488]
mov ecx, 5
mov edi, edx
mov ebx, edx
rep stosd dword es:[edi], eax
mov eax, 0x400
mov ecx, 0x14
mov edi, 0xa
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov esi, dword [0x410c70]
mov dword [esp], esi
call sub.KERNEL32.dll_FindResourceExA
sub esp, 0x10
test eax, eax
je 0x404b1f
mov dword [esp + 4], eax
mov esi, dword [0x410c70]
mov dword [esp], esi
call sub.KERNEL32.dll_LoadResource
sub esp, 8
test eax, eax
je 0x403fdd
mov dword [esp], eax
call sub.KERNEL32.dll_LockResource
sub esp, 4
test eax, eax
mov ecx, eax
je 0x403fdd
xor edx, edx
movzx eax, byte [edx + ecx]
mov byte [edx + ebx], al
inc edx
test al, al
jne 0x403fd1
mov dword [esp], ebx
xor ebx, ebx
mov esi, 0x400
call sub.msvcrt.dll_atoi
mov dword [0x410c60], eax
lea edx, [ebp - 0x205b8]
mov eax, ebx
cld
mov edi, edx
mov ecx, 5
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], esi
mov ecx, 0xa
mov edi, 9
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov edx, dword [0x410c70]
mov dword [esp], edx
call sub.KERNEL32.dll_FindResourceExA
sub esp, 0x10
test eax, eax
je 0x404b33
mov dword [esp + 4], eax
mov esi, dword [0x410c70]
mov dword [esp], esi
call sub.KERNEL32.dll_LoadResource
sub esp, 8
test eax, eax
je 0x40406e
mov dword [esp], eax
call sub.KERNEL32.dll_LockResource
sub esp, 4
test eax, eax
mov ecx, eax
je 0x40406e
xor edx, edx
movzx eax, byte [edx + ecx]
mov byte [edx + ebp - 0x205b8], al
inc edx
test al, al
jne 0x40405e
cld
mov ecx, 5
lea esi, [ebp - 0x205b8]
mov edi, 0x4070b4
repe cmpsb byte [esi], byte es:[edi]
jne 0x40409f
mov eax, str.__l4j_default_proc
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
call sub.msvcrt.dll_strstr
test eax, eax
je 0x404be1
cld
xor eax, eax
lea esi, [ebp - 0x205d8]
mov edi, esi
mov ecx, 5
mov edx, 0x400
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], edx
mov ecx, 0x11
mov esi, 0xa
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov edi, dword [0x410c70]
mov dword [esp], edi
call sub.KERNEL32.dll_FindResourceExA
sub esp, 0x10
test eax, eax
je 0x404b0b
mov dword [esp + 4], eax
mov edx, dword [0x410c70]
mov dword [esp], edx
call sub.KERNEL32.dll_LoadResource
sub esp, 8
test eax, eax
je 0x404121
mov dword [esp], eax
call sub.KERNEL32.dll_LockResource
sub esp, 4
test eax, eax
mov ecx, eax
je 0x404121
xor edx, edx
movzx eax, byte [edx + ecx]
mov byte [edx + ebp - 0x205d8], al
inc edx
test al, al
jne 0x404111
cld
mov ecx, 5
lea esi, [ebp - 0x205d8]
mov edi, 0x4070b4
lea edx, [ebp - 0x8128]
repe cmpsb byte [esi], byte es:[edi]
sete al
mov ecx, 0x410020
movzx edi, al
mov dword [ebp - 0x288b0], edi
mov dword [esp + 0xc], ecx
mov esi, dword [ebp - 0x288c8]
mov dword [esp + 4], edx
mov dword [esp], ebx
mov ebx, 0x1a
mov dword [esp + 8], esi
lea esi, [ebp - 0x205f8]
mov edi, esi
call fcn.00402910
cld
xor eax, eax
mov ecx, 8
rep stosd dword es:[edi], eax
mov dword [esp], esi
mov edi, str._Xms
call sub.KERNEL32.dll_GlobalMemoryStatus
sub esp, 4
mov eax, 0x19
mov dword [esp + 0x10], edi
mov ecx, dword [ebp - 0x205ec]
mov dword [esp + 4], eax
mov edi, 0x1c
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x8018]
mov dword [esp + 0xc], ecx
mov dword [esp], 0x408020
call fcn.00403260
mov edx, str._Xmx
mov ecx, 0x1b
mov dword [esp + 0x10], edx
mov esi, dword [ebp - 0x205ec]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp], 0x408020
call fcn.00403260
mov dword [esp + 4], ebx
mov dword [esp], 0xc
call fcn.00401e10
test eax, eax
je 0x40478a
lea edx, [ebp - 0x8018]
mov ebx, 0x20
mov dword [esp], edx
call sub.msvcrt.dll_strlen
mov word [eax + ebp - 0x8018], bx
lea ecx, [ebp - 0x8128]
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov eax, edx
and eax, 0x80808080
je 0x404223
and edx, 0x8080
jne 0x404249
shr eax, 0x10
add ecx, 2
add al, al
lea edi, [ebp - 0x8128]
lea eax, [ebp - 0x8358]
sbb ecx, 3
sub ecx, edi
lea ebx, [ecx - 3]
mov dword [esp + 8], ebx
mov ebx, 0x696e69
mov dword [esp + 4], edi
lea edi, [ebp - 0x8358]
mov dword [esp], eax
call sub.msvcrt.dll_strncpy
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov dword [eax + ebp - 0x8354], ebx
xor ecx, ecx
mov edx, 0x2e6a346c
mov dword [eax + ebp - 0x8358], edx
mov dword [esp + 4], ecx
mov dword [esp], edi
call sub.msvcrt.dll__open
mov dword [ebp - 0x288b8], eax
inc eax
je 0x4043dd
lea edx, [ebp - 0x8018]
mov eax, dword [edx]
add edx, 4
lea ecx, [eax - 0x1010101]
not eax
and ecx, eax
mov eax, ecx
and eax, 0x80808080
je 0x4042b6
and ecx, 0x8080
jne 0x4042dc
shr eax, 0x10
add edx, 2
add al, al
lea eax, [ebp - 0x8018]
mov esi, eax
sbb edx, 3
mov ebx, 0x7c00
sub edx, eax
add esi, edx
sub ebx, edx
mov dword [ebp - 0x288bc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov edx, dword [ebp - 0x288b8]
mov dword [esp], edx
call sub.msvcrt.dll__read
mov dword [ebp - 0x288c0], eax
mov ecx, 1
test eax, eax
mov dword [ebp - 0x288c4], ecx
jle 0x40439b
mov ebx, eax
jmp 0x40435c
lea edi, [ebp - 0x8018]
mov ecx, 1
cmp edi, dword [ebp - 0x288bc]
mov dword [ebp - 0x288c4], ecx
jae 0x404358
mov eax, dword [ebp - 0x288bc]
cmp byte [eax - 1], 0x20
je 0x404358
mov byte [eax], 0x20
inc eax
mov dword [ebp - 0x288bc], eax
inc esi
dec ebx
je 0x40439b
movzx ecx, byte [esi]
cmp cl, 0x23
je 0x404391
cmp cl, 0xd
sete al
cmp cl, 0xa
sete dl
or eax, edx
test al, 1
jne 0x404329
mov eax, dword [ebp - 0x288c4]
test eax, eax
je 0x404358
mov edx, dword [ebp - 0x288bc]
mov byte [edx], cl
inc edx
mov dword [ebp - 0x288bc], edx
jmp 0x404358
xor ecx, ecx
mov dword [ebp - 0x288c4], ecx
jmp 0x404358
mov edi, dword [ebp - 0x288bc]
mov byte [edi], 0
mov esi, dword [ebp - 0x288c0]
test esi, esi
jle 0x4043cf
cmp byte [edi - 1], 0x20
je 0x4043cf
lea edi, [ebp - 0x8018]
mov ebx, 0x20
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov word [eax + ebp - 0x8018], bx
mov ecx, dword [ebp - 0x288b8]
mov dword [esp], ecx
call sub.msvcrt.dll__close
mov edx, dword [ebp - 0x288c8]
lea esi, [ebp - 0x8128]
mov dword [esp], 0x408020
lea eax, [ebp - 0x8018]
mov dword [esp + 8], esi
xor ebx, ebx
mov dword [esp + 4], eax
lea esi, [ebp - 0x20678]
mov dword [esp + 0xc], edx
mov edi, 0x104
call fcn.00402fe0
mov dword [esp + 4], ebx
mov ecx, pe_nt_image_headers32
lea ebx, [ebp - 0x20788]
mov dword [esp + 8], ecx
mov dword [esp], esi
call sub.msvcrt.dll_memset
mov dword [esp + 8], edi
xor edx, edx
mov dword [esp + 4], edx
mov dword [esp], ebx
call sub.msvcrt.dll_memset
mov dword [esp + 4], ebx
mov dword [esp], 0xe
call fcn.00401e10
mov dword [esp + 4], esi
mov dword [esp], 0xf
call fcn.00401e10
test eax, eax
jne 0x404796
mov esi, dword [ebp - 0x288b0]
mov ecx, 0x408020
test esi, esi
je 0x404632
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov eax, edx
and eax, 0x80808080
je 0x40447c
and edx, 0x8080
jne 0x4044a2
shr eax, 0x10
add ecx, 2
add al, al
mov ebx, ecx
mov edx, 0x72616a2d
sbb ebx, 3
mov ecx, 0x2220
sub ebx, 0x408020
mov word [ebx + 0x408024], cx
lea edi, [ebp - 0x8128]
mov dword [ebx + 0x408020], edx
mov byte [ebx + 0x408026], 0
mov dword [esp + 4], edi
mov dword [esp], 0x408020
call sub.msvcrt.dll_strcat
mov ecx, 0x408020
mov esi, dword [ecx]
add ecx, 4
lea edx, [esi - 0x1010101]
not esi
and edx, esi
mov eax, edx
and eax, 0x80808080
je 0x4044e8
and edx, 0x8080
jne 0x40450e
shr eax, 0x10
add ecx, 2
add al, al
sbb ecx, 3
mov word [ecx], 0x22
mov dword [esp], 0xd
lea ecx, [ebp - 0x8018]
mov dword [esp + 4], ecx
call fcn.00401e10
test eax, eax
je 0x40457d
mov ecx, 0x408020
mov esi, dword [ecx]
add ecx, 4
lea edx, [esi - 0x1010101]
not esi
and edx, esi
mov eax, edx
and eax, 0x80808080
je 0x404537
and edx, 0x8080
jne 0x40455d
shr eax, 0x10
add ecx, 2
add al, al
lea edx, [ebp - 0x8018]
sbb ecx, 3
mov word [ecx], 0x20
mov dword [esp + 4], edx
mov dword [esp], 0x408020
call sub.msvcrt.dll_strcat
mov edx, dword [ebp + 8]
cmp byte [edx], 0
jne 0x4049cc
mov eax, dword [0x410c20]
test eax, eax
je 0x404628
mov dword [esp], eax
mov ebx, 0x410020
mov edi, str.Launcher:_t_s_n
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
call sub.msvcrt.dll_fprintf
mov eax, dword [0x410c20]
test eax, eax
je 0x404628
mov dword [esp], eax
mov ecx, str.Launcher_args:_t_s_n
mov esi, 0x408020
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
call sub.msvcrt.dll_fprintf
mov ebx, dword [0x410c20]
test ebx, ebx
je 0x404628
mov ecx, 0x408020
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov eax, edx
and eax, 0x80808080
je 0x4045e2
and edx, 0x8080
jne 0x404608
shr eax, 0x10
add ecx, 2
mov dword [esp], ebx
add al, al
mov edx, str.Args_length:_t_d_32768_chars_n
sbb ecx, 3
sub ecx, 0x408020
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call sub.msvcrt.dll_fprintf
mov edx, 1
jmp 0x40366d
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov eax, edx
and eax, 0x80808080
je 0x404632
and edx, 0x8080
jne 0x404658
shr eax, 0x10
add ecx, 2
add al, al
mov edx, ecx
mov eax, 0x72616a2d
sbb edx, 3
mov esi, 0x2220
sub edx, 0x408020
mov dword [edx + 0x408020], eax
lea edi, [ebp - 0x8128]
mov word [edx + 0x408024], si
mov byte [edx + 0x408026], 0
mov ecx, dword [ebp - 0x288c8]
mov dword [esp + 4], edi
mov dword [esp], 0x408020
mov dword [esp + 8], ecx
call sub.msvcrt.dll_strncat
mov dword [esp], 0x408020
call sub.msvcrt.dll_strlen
cmp byte [eax + 0x40801f], 0x5c
je 0x4046c4
mov edi, 0x5c
mov word [eax + 0x408020], di
mov dword [esp + 4], ebx
mov dword [esp], 0x408020
call sub.msvcrt.dll_strcat
mov ecx, 0x408020
mov ebx, dword [ecx]
add ecx, 4
lea edx, [ebx - 0x1010101]
not ebx
and edx, ebx
mov eax, edx
and eax, 0x80808080
je 0x4046d9
jmp 0x404500
mov ebx, 0x410020
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x10598]
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov edi, dword [0x410ba8]
test edi, edi
je 0x40476e
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp byte [eax + ebx - 1], 0x5c
je 0x40472c
mov word [eax + ebx], 0x5c
mov eax, str.binjava.exe
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
mov ecx, 0x410c30
xor ebx, ebx
mov dword [esp + 4], ecx
call sub.msvcrt.dll__stat
test eax, eax
sete bl
jmp 0x403d9d
mov dword [esp], 0
call sub.KERNEL32.dll_SetLastError
sub esp, 4
jmp 0x403d6e
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp byte [eax + ebx - 1], 0x5c
je 0x404783
mov word [eax + ebx], 0x5c
mov eax, str.binjavaw.exe
jmp 0x404731
mov byte [ebp - 0x8018], 0
jmp 0x40421d
mov dword [esp], 0x10
lea edi, [ebp - 0x8018]
mov dword [esp + 4], edi
call fcn.00401e10
xor edx, edx
test eax, eax
je 0x40366d
mov ecx, 0x8000
lea esi, [ebp - 0x28788]
xor edi, edi
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_memset
mov edx, dword [ebp - 0x288c8]
lea ecx, [ebp - 0x8018]
mov dword [esp], esi
lea eax, [ebp - 0x8128]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.00402fe0
mov ecx, 0x408020
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov eax, edx
and eax, 0x80808080
je 0x4047fe
and edx, 0x8080
jne 0x404824
shr eax, 0x10
add ecx, 2
add al, al
mov eax, ecx
mov edx, 0x616c632d
sbb eax, 3
mov ecx, 0x61707373
sub eax, 0x408020
mov dword [eax + 0x408020], edx
mov edi, 0x22206874
mov dword [eax + 0x408024], ecx
mov dword [eax + 0x408028], edi
mov byte [eax + 0x40802c], 0
mov edx, dword [ebp - 0x288b0]
test edx, edx
jne 0x404c25
cmp byte [ebp - 0x20788], 0
jne 0x404beb
mov dword [esp], esi
mov eax, 0x4073c2
mov dword [esp + 4], eax
call sub.msvcrt.dll_strtok
test eax, eax
mov ebx, eax
je 0x404b47
mov eax, dword [0x410c20]
test eax, eax
je 0x4048ac
mov dword [esp + 8], ebx
mov esi, str.Add_classpath:_t_s_n
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], ebx
mov ecx, 0x4073d7
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strpbrk
test eax, eax
je 0x404ac1
mov dword [esp], ebx
mov ecx, 0x5c
lea esi, [ebp - 0x8358]
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strrchr
mov dword [esp + 4], ebx
sub eax, ebx
lea edi, [eax + 1]
mov dword [esp], esi
mov dword [esp + 8], edi
call sub.msvcrt.dll_strncpy
lea eax, [ebp - 0x8358]
lea esi, [eax + edi]
lea edx, [ebp - 0x288a8]
mov byte [esi], 0
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll__findfirst
cmp eax, 0xffffffff
mov ebx, eax
je 0x404992
mov dword [esp], esi
lea edi, [ebp - 0x28894]
mov dword [esp + 4], edi
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x408020
lea edx, [ebp - 0x8358]
mov dword [esp + 4], edx
call sub.msvcrt.dll_strcat
mov ecx, 0x408020
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov eax, edx
and eax, 0x80808080
je 0x404943
and edx, 0x8080
jne 0x404969
shr eax, 0x10
add ecx, 2
add al, al
sbb ecx, 3
mov word [ecx], 0x3b
mov eax, dword [0x410c20]
test eax, eax
jne 0x4049af
mov dword [esp], ebx
lea edi, [ebp - 0x288a8]
mov dword [esp + 4], edi
call sub.msvcrt.dll__findnext
test eax, eax
je 0x404916
mov dword [esp], ebx
call sub.msvcrt.dll__findclose
mov dword [esp], 0
mov esi, 0x4073c2
mov dword [esp + 4], esi
jmp 0x40487f
mov dword [esp], eax
lea edx, [ebp - 0x8358]
mov ecx, str._____________:_t_s_n
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_fprintf
jmp 0x40497c
mov dword [esp + 4], edx
lea eax, [ebp - 0x8018]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov ecx, str.__l4j_
lea ebx, [ebp - 0x8018]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strstr
test eax, eax
mov ebx, eax
je 0x404a25
mov dword [esp], ebx
mov edi, 0x20
mov dword [esp + 4], edi
call sub.msvcrt.dll_strchr
test eax, eax
je 0x404a16
cmp byte [eax + 1], 0
jne 0x404a1b
mov byte [ebx], 0
jmp 0x4049de
mov dword [esp], ebx
inc eax
mov dword [esp + 4], eax
jmp 0x4049d9
cmp byte [ebp - 0x8018], 0
je 0x404589
mov ecx, 0x408020
mov esi, dword [ecx]
add ecx, 4
lea edx, [esi - 0x1010101]
not esi
and edx, esi
mov eax, edx
and eax, 0x80808080
je 0x404a37
and edx, 0x8080
jne 0x404a5d
shr eax, 0x10
add ecx, 2
add al, al
lea edx, [ebp - 0x8018]
sbb ecx, 3
mov word [ecx], 0x20
mov dword [esp + 4], edx
mov dword [esp], 0x408020
call sub.msvcrt.dll_strcat
jmp 0x404589
mov eax, dword [0x410c20]
test eax, eax
jne 0x404a95
mov edx, 0xb7
jmp 0x40366d
mov dword [esp + 0xc], eax
mov edi, 0x18
mov esi, 1
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], str.Instance_already_exists.
call sub.msvcrt.dll_fwrite
mov edx, 0xb7
jmp 0x40366d
mov dword [esp + 4], ebx
mov dword [esp], 0x408020
call sub.msvcrt.dll_strcat
mov ecx, 0x408020
mov ebx, dword [ecx]
add ecx, 4
lea edx, [ebx - 0x1010101]
not ebx
and edx, ebx
mov eax, edx
and eax, 0x80808080
je 0x404ad6
and edx, 0x8080
jne 0x404afc
shr eax, 0x10
add ecx, 2
add al, al
sbb ecx, 3
mov word [ecx], 0x3b
jmp 0x40499a
mov dword [esp], 0
call sub.KERNEL32.dll_SetLastError
sub esp, 4
jmp 0x404121
mov dword [esp], 0
call sub.KERNEL32.dll_SetLastError
sub esp, 4
jmp 0x403fdd
mov dword [esp], 0
call sub.KERNEL32.dll_SetLastError
sub esp, 4
jmp 0x40406e
mov ecx, 0x408020
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov eax, edx
and eax, 0x80808080
je 0x404b4c
and edx, 0x8080
jne 0x404b72
shr eax, 0x10
add ecx, 2
add al, al
sbb ecx, 3
mov byte [ecx - 1], 0
mov ecx, 0x408020
mov edi, dword [ecx]
add ecx, 4
lea edx, [edi - 0x1010101]
not edi
and edx, edi
mov eax, edx
and eax, 0x80808080
je 0x404b80
and edx, 0x8080
jne 0x404ba6
shr eax, 0x10
add ecx, 2
add al, al
mov edx, ecx
mov ebx, 0x2022
sbb edx, 3
lea ecx, [ebp - 0x20678]
sub edx, 0x408020
mov word [edx + 0x408020], bx
mov byte [edx + 0x408022], 0
mov dword [esp + 4], ecx
mov dword [esp], 0x408020
call sub.msvcrt.dll_strcat
jmp 0x404518
mov ebx, 1
jmp 0x40409f
mov dword [esp + 4], ebx
mov dword [esp], 0x408020
call sub.msvcrt.dll_strcat
cmp byte [ebp - 0x28788], 0
je 0x404873
mov dword [esp], 0x408020
call sub.msvcrt.dll_strlen
mov edi, 0x3b
mov word [eax + 0x408020], di
jmp 0x404873
mov dword [esp], 0x408020
lea ebx, [ebp - 0x8128]
mov dword [esp + 4], ebx
call sub.msvcrt.dll_strcat
cmp byte [ebp - 0x28788], 0
je 0x404873
mov dword [esp], 0x408020
call sub.msvcrt.dll_strlen
jmp 0x404c14