Function at 0x403990
Capabilities:
Accept command line arguments
Create process on windows
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55ec85
mov eax, dword fs:[0]
push eax
mov eax, 0x1174
call fcn.005419a0
mov eax, dword [0x5befcc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x20a
lea eax, [ebp - 0x428]
mov edi, 0x12c
push 0
push eax
call fcn.005436f0
push 0x20a
lea eax, [ebp - 0x634]
push 0
push eax
call fcn.005436f0
push 0x20a
lea eax, [ebp - 0x840]
push 0
push eax
call fcn.005436f0
push 0x20a
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.005436f0
add esp, 0x30
lea eax, [ebp - 0x428]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
push 0
push 0
push 0
push 0x105
lea eax, [ebp - 0x840]
push eax
push 0x105
lea eax, [ebp - 0x634]
push eax
lea eax, [ebp - 0x428]
push eax
call fcn.005467f5
lea eax, [ebp - 0x634]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00548140
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00548140
push 0x5a1f68
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00548140
add esp, 0x48
lea eax, [ebp - 0x1040]
push 0x800
push 0
push eax
call fcn.005436f0
add esp, 0xc
mov dword [ebp - 0x1118], 0x411
lea ecx, [ebp - 0x1114]
push 0x5a1c78
call fcn.004027f0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x110c]
push 0x5a1c80
mov dword [ebp - 0x1110], 0x40c
call fcn.004027f0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1104]
push 0x5a1c88
mov dword [ebp - 0x1108], 0x410
call fcn.004027f0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x10fc]
push 0x5a1c90
mov dword [ebp - 0x1100], 0x407
call fcn.004027f0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x10f4]
push 0x5a1c98
mov dword [ebp - 0x10f8], 0xc0a
call fcn.004027f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x10ec]
push str.zh_cn
mov dword [ebp - 0x10f0], 0x804
call fcn.004027f0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x10e4]
push str.zh_tw
mov dword [ebp - 0x10e8], 0x404
call fcn.004027f0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x10dc]
push 0x5a1ca0
mov dword [ebp - 0x10e0], 0x412
call fcn.004027f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x10d4]
push 0x5a1cc0
mov dword [ebp - 0x10d8], 0x401
call fcn.004027f0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10cc]
push 0x5a1cc8
mov dword [ebp - 0x10d0], 0x42d
call fcn.004027f0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x10c4]
push 0x5a1cd0
mov dword [ebp - 0x10c8], 0x403
call fcn.004027f0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x10bc]
push 0x5a1cd8
mov dword [ebp - 0x10c0], 0x405
call fcn.004027f0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x10b4]
push 0x5a1ce0
mov dword [ebp - 0x10b8], 0x406
call fcn.004027f0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x10ac]
push 0x5a1ce8
mov dword [ebp - 0x10b0], 0x413
call fcn.004027f0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x10a4]
push 0x5a1cf0
mov dword [ebp - 0x10a8], 0x40b
call fcn.004027f0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x109c]
push 0x5a1cf8
mov dword [ebp - 0x10a0], 0x40e
call fcn.004027f0
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x1098], 0x43e
push 0x5a1d00
lea ecx, [ebp - 0x1094]
call fcn.004027f0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x108c]
push 0x5a1d08
mov dword [ebp - 0x1090], 0x414
call fcn.004027f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x1084]
push 0x5a1d10
mov dword [ebp - 0x1088], 0x415
call fcn.004027f0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x107c]
push 0x5a1d18
mov dword [ebp - 0x1080], 0x416
call fcn.004027f0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1074]
push 0x5a1d20
mov dword [ebp - 0x1078], 0x419
call fcn.004027f0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x106c]
push 0x5a1d28
mov dword [ebp - 0x1070], 0x41b
call fcn.004027f0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1064]
push 0x5a1d30
mov dword [ebp - 0x1068], 0x41d
call fcn.004027f0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x105c]
push 0x5a1d38
mov dword [ebp - 0x1060], 0x41e
call fcn.004027f0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x1054]
push 0x5a1d40
mov dword [ebp - 0x1058], 0x41f
call fcn.004027f0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x104c]
push 0x5a1d48
mov dword [ebp - 0x1050], 0x422
call fcn.004027f0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x1044]
push 0x5a1d50
mov dword [ebp - 0x1048], 0x42a
call fcn.004027f0
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 4], 0x1a
nop dword [eax]
cmp eax, dword [ebp + esi*8 - 0x1118]
je 0x403e04
inc esi
cmp esi, 0x1b
jb 0x403df0
jmp 0x403f44
push 0x5a1d68
lea ecx, [ebp - 0x1128]
call fcn.004027f0
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x1128]
push dword [ebp + esi*8 - 0x1118]
push str.TRANSFORMS
push str._s:_d
push eax
call fcn.00404a60
push dword [ebp - 0x1128]
lea eax, [ebp - 0x1040]
push 0x400
push eax
call fcn.00548140
add esp, 0x1c
lea ecx, [ebp - 0x1124]
push 0x5a1d68
call fcn.004027f0
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x1124]
push dword [ebp + esi*8 - 0x1114]
push str.SELECTLANGUAGE
push str._s_s
push eax
call fcn.00404a60
push dword [ebp - 0x1124]
lea eax, [ebp - 0x1040]
push 0x400
push eax
call fcn.00548140
mov byte [ebp - 4], 0x1b
or esi, 0xffffffff
mov ecx, dword [ebp - 0x1124]
add esp, 0x1c
add ecx, 0xfffffff0
mov eax, esi
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x403efa
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edx, dword [eax + 4]
mov dword [ebp - 0x111c], edx
mov edx, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40422d
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x111c], edi
mov edi, 0x12c
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x404220
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 0x1a
mov eax, esi
mov ecx, dword [ebp - 0x1128]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x403f44
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40423a
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40423a
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea eax, [ebp - 0x112c]
mov dword [ebp - 0x112c], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, 1
mov dword [ebp - 0x111c], eax
cmp dword [ebp - 0x112c], esi
jle 0x404034
nop dword [eax]
push 8
push str.TIMEOUT
push dword [eax + esi*4]
call fcn.005481b5
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x111c]
jne 0x403fc1
mov eax, dword [eax + esi*4]
add eax, 0x10
push eax
call fcn.00549288
add esp, 4
cmp eax, 0x15180
jle 0x403fb9
mov edi, 0x15180
jmp 0x404021
test eax, eax
jle 0x404021
mov edi, eax
jmp 0x404021
push 1
push 0x5a1fe4
push dword [eax + esi*4]
call fcn.005481b5
add esp, 0xc
test eax, eax
je 0x403fee
mov eax, dword [ebp - 0x111c]
push 0x3d
push dword [eax + esi*4]
call fcn.00542a7d
add esp, 8
test eax, eax
je 0x404021
mov eax, dword [ebp - 0x111c]
push dword [eax + esi*4]
lea eax, [ebp - 0x1040]
push 0x400
push eax
call fcn.00548140
push 0x5a1fe8
lea eax, [ebp - 0x1040]
push 0x400
push eax
call fcn.00548140
add esp, 0x18
mov eax, dword [ebp - 0x111c]
inc esi
cmp esi, dword [ebp - 0x112c]
jl 0x403f80
test eax, eax
je 0x40403f
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xorps xmm0, xmm0
mov dword [ebp - 0x1180], 0x44
push 0x5a1d68
lea ecx, [ebp - 0x1120]
movlpd qword [ebp - 0x117c], xmm0
movlpd qword [ebp - 0x1174], xmm0
movlpd qword [ebp - 0x116c], xmm0
movlpd qword [ebp - 0x1164], xmm0
movlpd qword [ebp - 0x115c], xmm0
movlpd qword [ebp - 0x1154], xmm0
movlpd qword [ebp - 0x114c], xmm0
movlpd qword [ebp - 0x1144], xmm0
movups xmmword [ebp - 0x113c], xmm0
call fcn.004027f0
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x1120]
push 0x5a1fec
push eax
call fcn.00404a60
add esp, 0x10
push dword [ebp - 0x1120]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [ebp - 0x1120]
cmp dword [eax - 4], 1
jle 0x4040f5
push dword [eax - 0xc]
lea ecx, [ebp - 0x1120]
call fcn.00402380
mov eax, dword [ebp - 0x1120]
lea ecx, [ebp - 0x113c]
push ecx
lea ecx, [ebp - 0x1180]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov ecx, dword [ebp - 0x1120]
mov esi, eax
push dword [ecx - 8]
push ecx
call fcn.005493fa
mov edx, eax
add esp, 8
test edx, edx
js 0x404216
mov ecx, dword [ebp - 0x1120]
cmp edx, dword [ecx - 8]
jg 0x404216
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x1120]
mov word [eax + edx*2], cx
cmp esi, 1
jne 0x404189
mov ecx, dword [ebp - 0x113c]
test ecx, ecx
je 0x404189
imul eax, edi, 0x3e8
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x1138]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x113c]
call esi
jmp 0x404196
imul eax, edi, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp - 4], 0x1a
or eax, 0xffffffff
mov ecx, dword [ebp - 0x1120]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4041dd
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x404243
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x404243
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x404250
push 0x1b
push 8
lea eax, [ebp - 0x1118]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.005416c2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00541176
mov esp, ebp
pop ebp
ret 4
push 0x80070057
call fcn.00402640
mov ecx, edx
call dword [ebp - 0x111c]
jmp 0x403efa
mov ecx, edx
call dword [ebp - 0x111c]
jmp 0x403efa
mov ecx, edx
call esi
jmp 0x403f44
mov ecx, edx
call esi
jmp 0x4041dd