Function at 0x404300
Capabilities:
Create process on windows
Set current directory
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1fc
mov eax, dword [0x5cb218]
xor eax, esp
mov dword [esp + 0x1f8], eax
push ebx
mov ebx, dword [ebp + 0x10]
lea ecx, [esp + 0x14]
push esi
push edi
mov edi, dword [ebp + 8]
push ebx
mov dword [esp + 0x28], ebx
call fcn.00405f40
push 0x5bc754
lea ecx, [esp + 0x1c]
call fcn.00405f40
mov eax, dword [esp + 0x18]
test eax, eax
je 0x404d6a
push eax
push dword [esp + 0x20]
call fcn.0053b223
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
add esp, 8
push 0x64
push 0x5cfde8
push 0x67
push edi
call esi
push 0x64
push 0x5cfd80
push 0x6d
push edi
call esi
push 0x6d
push edi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
xor eax, eax
mov dword [esp + 0x28], 0x44
xorps xmm0, xmm0
mov word [esp + 0x6a], ax
mov eax, 5
movlpd qword [esp + 0x2c], xmm0
push 0x105
mov word [esp + 0x5c], ax
lea eax, [esp + 0xfc]
push 0
push eax
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x58], xmm0
movlpd qword [esp + 0x66], xmm0
movlpd qword [esp + 0x6e], xmm0
mov dword [esp + 0x60], 1
call fcn.00530240
add esp, 0xc
lea eax, [esp + 0xf8]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0xf8]
push 0x5c
push eax
call fcn.0053a286
lea ecx, [esp + 0x100]
mov dword [esp + 0xe8], 0
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
lea edx, [ecx + 1]
mov byte [eax + 1], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404440
sub ecx, edx
lea eax, [esp + 0xf8]
push ecx
push eax
lea ecx, [esp + 0xe8]
call fcn.00406ac0
lea eax, [esp + 0xf8]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x17
push str.._bin_patch_bin_version
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0xf
call fcn.00406ac0
push 0x16
push str.._neox_bin_bin_version
lea ecx, [esp + 0xb8]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xf
call fcn.00406ac0
lea edx, [esp + 0x80]
lea ecx, [esp + 0xb0]
call fcn.004024e0
mov edx, dword [esp + 0xc4]
mov byte [esp + 0xf], al
cmp edx, 0x10
jb 0x404527
mov ecx, dword [esp + 0xb0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40451d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d7e
push edx
push ecx
call fcn.0052e508
add esp, 8
mov edx, dword [esp + 0x94]
cmp edx, 0x10
jb 0x404563
mov ecx, dword [esp + 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404559
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d7e
push edx
push ecx
call fcn.0052e508
add esp, 8
or edi, 0xffffffff
cmp byte [esp + 0xf], 0
je 0x4049dc
mov ecx, str.launcher.exe
call fcn.00401ff0
mov esi, dword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
je 0x40458a
push 0
push eax
call esi
mov ecx, str.client_future.exe
call fcn.00401ff0
test eax, eax
je 0x40459d
push 0
push eax
call esi
sub esp, 0x18
lea eax, [esp + 0xf8]
mov ecx, esp
push eax
call fcn.00406140
call fcn.00403fa0
add esp, 0x18
mov dword [esp + 0xc8], 0
lea ecx, [esp + 0xc8]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
push 0xb
push str.bin_version
call fcn.00406ac0
push 0xa
push str.._neox_bin
lea ecx, [esp + 0xb8]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xf
call fcn.00406ac0
push 0xb
push str.._bin_patch
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0xf
call fcn.00406ac0
lea eax, [esp + 0xc8]
push eax
lea edx, [esp + 0xb4]
lea ecx, [esp + 0x84]
call fcn.00403010
mov edx, dword [esp + 0x98]
add esp, 4
test al, al
sete byte [esp + 0xf]
cmp edx, 0x10
jb 0x4046b4
mov ecx, dword [esp + 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4046aa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d74
push edx
push ecx
call fcn.0052e508
add esp, 8
mov edx, dword [esp + 0xc4]
cmp edx, 0x10
jb 0x4046f0
mov ecx, dword [esp + 0xb0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4046e6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d74
push edx
push ecx
call fcn.0052e508
add esp, 8
mov edx, dword [esp + 0xdc]
cmp edx, 0x10
jb 0x40472c
mov ecx, dword [esp + 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404722
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d74
push edx
push ecx
call fcn.0052e508
add esp, 8
cmp byte [esp + 0xf], 0
je 0x4048bf
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0xb
push str.bin_version
lea ecx, [esp + 0xb8]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xf
call fcn.00406ac0
push 0xa
push str.._neox_bin
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0xf
call fcn.00406ac0
push 0xb
push str.._bin_patch
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0xf
call fcn.00406ac0
lea eax, [esp + 0xb0]
push eax
lea edx, [esp + 0x84]
lea ecx, [esp + 0xcc]
call fcn.00403010
mov edx, dword [esp + 0xe0]
add esp, 4
test al, al
sete byte [esp + 0xf]
cmp edx, 0x10
jb 0x40483c
mov ecx, dword [esp + 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404832
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d79
push edx
push ecx
call fcn.0052e508
add esp, 8
mov edx, dword [esp + 0x94]
cmp edx, 0x10
jb 0x404878
mov ecx, dword [esp + 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40486e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d79
push edx
push ecx
call fcn.0052e508
add esp, 8
mov edx, dword [esp + 0xc4]
cmp edx, 0x10
jb 0x4048b4
mov ecx, dword [esp + 0xb0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4048aa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d79
push edx
push ecx
call fcn.0052e508
add esp, 8
cmp byte [esp + 0xf], 0
jne 0x4049c0
push 0x16
push str.._neox_bin_bin_version
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0xf
call fcn.00406ac0
push 0x17
push str.._bin_patch_bin_version
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0xf
call fcn.00406ac0
lea edx, [esp + 0x80]
lea ecx, [esp + 0xc8]
call fcn.00403e20
mov edx, dword [esp + 0xdc]
test al, al
sete byte [esp + 0xf]
cmp edx, 0x10
jb 0x40497d
mov ecx, dword [esp + 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404973
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d7e
push edx
push ecx
call fcn.0052e508
add esp, 8
mov edx, dword [esp + 0x94]
cmp edx, 0x10
jb 0x4049b9
mov ecx, dword [esp + 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4049af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d7e
push edx
push ecx
call fcn.0052e508
add esp, 8
cmp byte [esp + 0xf], 0
je 0x4049dc
push 0x1010
push 0x5bc6a4
push 0x5bc794
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x404cdb
call fcn.00402c80
push 0xb
push str.._neox_bin_
lea ecx, [esp + 0xa0]
mov dword [esp + 0x28], eax
mov dword [esp + 0xa0], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xf
call fcn.00406ac0
mov edx, dword [esp + 0xac]
mov eax, edx
mov ecx, dword [esp + 0xa8]
sub eax, ecx
push 0xc
push str.launcher.exe
cmp eax, 0xc
jb 0x404a64
cmp edx, 0x10
lea esi, [esp + 0xa0]
lea eax, [ecx + 0xc]
cmovae esi, dword [esp + 0xa0]
add esi, ecx
mov dword [esp + 0xb0], eax
push esi
call fcn.005303a0
add esp, 0xc
mov byte [esi + 0xc], 0
jmp 0x404a7b
mov byte [esp + 0x1c], 0
lea ecx, [esp + 0xa0]
push dword [esp + 0x1c]
push 0xc
call fcn.00407af0
push 0x5bc7a8
lea ecx, [esp + 0x14]
call fcn.00405f40
test ebx, ebx
jne 0x404a9e
mov eax, dword [esp + 0x10]
mov edi, ebx
sub edi, eax
mov esi, dword [eax - 0xc]
mov dword [esp + 0x14], esi
jmp 0x404ad1
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404aa3
mov eax, dword [esp + 0x10]
mov edi, ebx
sub edi, eax
sub ecx, edx
mov esi, dword [eax - 0xc]
mov dword [esp + 0x14], esi
js 0x404d60
push ecx
push ebx
call fcn.0053b586
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov ecx, bind
sub ecx, ebx
cmp ecx, esi
jl 0x404d60
add esi, ebx
js 0x404d60
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, esi
or edx, ecx
jge 0x404b07
push esi
lea ecx, [esp + 0x14]
call fcn.00407220
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [eax + edi]
cmp edi, ecx
jbe 0x404b16
mov edx, dword [esp + 0x24]
push ebx
push edx
add ecx, eax
mov edx, ebx
call fcn.004071a0
mov eax, dword [esp + 0x18]
add esp, 8
cmp esi, dword [eax - 8]
jg 0x404d60
cmp dword [esp + 0x20], 1
mov dword [eax - 0xc], esi
mov eax, dword [esp + 0x10]
mov byte [eax + esi], 0
mov eax, dword [esp + 0x10]
jne 0x404bf5
cmp dword [eax - 4], 1
jle 0x404b61
push dword [eax - 0xc]
lea ecx, [esp + 0x14]
call fcn.00406a10
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CreateProcessA]
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x2c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push str.._neox_binclient_future.exe
call esi
test eax, eax
jne 0x404bee
push str.Create_gray_Fail_
push 0x5cf0c0
call fcn.00407530
push eax
call fcn.004077c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x404bbb
push dword [eax - 0xc]
lea ecx, [esp + 0x14]
call fcn.00406a10
mov eax, dword [esp + 0x10]
cmp dword [esp + 0xac], 0x10
lea edx, [esp + 0x70]
push edx
lea edx, [esp + 0x2c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0xb8]
cmovae ecx, dword [esp + 0xb8]
push eax
push ecx
call esi
jmp 0x404c40
mov ecx, str.Create_gray_Success_
jmp 0x404c4f
cmp dword [eax - 4], 1
jle 0x404c0b
push dword [eax - 0xc]
lea ecx, [esp + 0x14]
call fcn.00406a10
mov eax, dword [esp + 0x10]
cmp dword [esp + 0xac], 0x10
lea edx, [esp + 0x70]
push edx
lea edx, [esp + 0x2c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0xb8]
cmovae ecx, dword [esp + 0xb8]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
mov ecx, str.Create_trunk_Fail_
mov edx, str.Create_trunk_Success_
cmovne ecx, edx
push ecx
push 0x5cf0c0
call fcn.00407530
push eax
call fcn.004077c0
mov edx, dword [esp + 0x1c]
or edi, 0xffffffff
add esp, 0xc
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404c81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0xac]
cmp edx, 0x10
jb 0x404cbd
mov ecx, dword [esp + 0x98]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404cb3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d7e
push edx
push ecx
call fcn.0052e508
add esp, 8
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0xf
mov byte [esp + 0x98], 0
mov edx, dword [esp + 0xf4]
cmp edx, 0x10
jb 0x404d13
mov ecx, dword [esp + 0xe0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404d09
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404d7e
push edx
push ecx
call fcn.0052e508
add esp, 8
mov edx, dword [esp + 0x18]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404d2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x404d47
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x204]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0052e4fa
mov esp, ebp
pop ebp
ret 0x10
push 0x80070057
call fcn.004087c0
push 0x80004005
call fcn.004087c0
call fcn.0053380f
call fcn.0053380f
call fcn.0053380f
int3