Function at 0x40293f
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x234
mov eax, dword [0x464628]
xor eax, esp
mov dword [esp + 0x230], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], edi
call dword [sym.imp.KERNEL32.dll_SetFileApisToOEM]
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [esp + 0xc8]
call fcn.004030ce
lea edx, [esp + 0x24]
lea ecx, [esp + 0xc4]
call fcn.0040d45c
push ebx
push 1
lea ecx, [esp + 0xcc]
call fcn.00403547
push dword [esp + 0x24]
lea ecx, [esp + 0x110]
call fcn.004030a6
push 1
xor edx, edx
lea ecx, [esp + 0x28]
call fcn.004041dd
lea ecx, [esp + 0x128]
call fcn.0040d616
lea eax, [esp + 0x24]
push eax
push ecx
lea ecx, [esp + 0x12c]
call fcn.0040d6ed
test al, al
jne 0x4029f8
call fcn.0040275b
jmp 0x402f82
push ebx
lea ecx, [esp + 0x128]
call fcn.0040da78
cmp byte [eax], bl
jne 0x402f7d
push 1
call fcn.0040da78
cmp byte [eax], bl
jne 0x402f7d
call fcn.0040d6e9
push 0x18
pop esi
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
cdq
idiv esi
test eax, eax
jne 0x402a3b
xor esi, esi
inc esi
mov dword [esp + 0x10], esi
jmp 0x402a51
cmp eax, 1
jg 0x4029ee
lea edx, [esp + 0x10]
call fcn.004027af
test al, al
je 0x4029ee
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call fcn.00402539
lea ecx, [esp + 0x58]
mov edx, eax
call fcn.0040e7e0
push ecx
push edx
call fcn.004028cf
pop ecx
pop ecx
push 3
lea ecx, [esp + 0x128]
call fcn.0040da78
push 4
lea edx, [esp + 0x110]
lea ecx, [esp + 0xc8]
mov al, byte [eax]
mov byte [esp + 0x13], al
call fcn.004062b0
pop ecx
cmp dword [eax + 0x14], 8
jb 0x402aa0
mov eax, dword [eax]
mov edx, str..exe
mov ecx, eax
call fcn.00405f00
push 0
push 1
lea ecx, [esp + 0xcc]
mov bl, al
call fcn.00403547
test bl, bl
jne 0x402aed
cmp word [str..exe], 0
jne 0x402ad0
xor eax, eax
jmp 0x402adb
push str..exe
call fcn.00438822
pop ecx
push eax
push str..exe
lea ecx, [esp + 0x114]
call fcn.00403786
push 4
lea ecx, [esp + 0x128]
call fcn.0040da78
xor ecx, ecx
mov bl, byte [eax]
and dword [esp + 0xec], 0
mov byte [esp + 0x10], bl
mov dword [esp + 0xf0], 7
mov word [esp + 0xdc], cx
test bl, bl
je 0x402b3a
lea ecx, [esp + 0xdc]
cmp ecx, dword [eax + 8]
je 0x402b3a
push 0xffffffffffffffff
push 0
push dword [eax + 8]
call fcn.0040348d
lea ecx, [esp + 0x150]
call fcn.00407af0
lea edx, [esp + 0x150]
lea ecx, [esp + 0x10c]
call fcn.00408060
test al, al
je 0x402b6d
lea ecx, [esp + 0x150]
call fcn.00407d00
test al, al
je 0x402baf
lea eax, [esp + 0xc4]
push 0x27e2
push eax
call fcn.004040ec
mov ecx, eax
call fcn.0040857e
lea eax, [esp + 0xc4]
mov ecx, 0x469b08
push eax
call fcn.004021f2
push 0
push 1
lea ecx, [esp + 0xcc]
call fcn.00403547
xor ebx, ebx
jmp 0x402f56
xor eax, eax
mov dword [esp + 0x108], 7
xor edx, edx
mov word [esp + 0xf4], ax
push 5
lea ecx, [esp + 0x128]
mov dword [esp + 0x108], edx
call fcn.0040da78
cmp byte [eax], dl
je 0x402c07
lea ecx, [esp + 0xf4]
cmp ecx, dword [eax + 8]
je 0x402bf6
push 0xffffffffffffffff
push edx
push dword [eax + 8]
call fcn.0040348d
push 0x10
pop edx
lea ecx, [esp + 0xf4]
call fcn.00407170
xor edx, edx
lea eax, [esp + 0x10c]
mov dword [esp + 0x30], edx
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
call fcn.00403149
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0x48]
call fcn.00403149
lea ecx, [esp + 0x58]
call fcn.00403a72
mov ecx, dword [eax]
call fcn.0040e765
mov dword [esp + 0x40], eax
cmp esi, 2
je 0x402e93
push 0x58
call fcn.0043855d
pop ecx
test eax, eax
je 0x402c75
mov ecx, eax
call fcn.0040bcf0
mov edi, eax
jmp 0x402c77
xor edi, edi
test edi, edi
je 0x402c80
lea eax, [edi + 8]
jmp 0x402c82
xor eax, eax
push eax
lea ecx, [esp + 0x54]
call fcn.0040422b
xor eax, eax
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], eax
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], eax
test bl, bl
je 0x402cba
lea ecx, [edi + 8]
mov eax, dword [ecx]
lea edx, [esp + 0xdc]
push edx
call dword [eax + 0x40]
lea ecx, [esp + 0x9c]
call fcn.0040edd5
push dword [esp + 0x10]
call fcn.0040eebe
sub esp, 0x18
lea eax, [esp + 0xf4]
mov ecx, esp
push eax
call fcn.004030a6
lea ecx, [esp + 0xb4]
call fcn.0040eecb
mov ebx, dword [esp + 0x3c]
lea ecx, [esp + 0x190]
add ebx, 4
mov dword [edi + 0x10], ebx
mov dword [esp + 0xa0], ebx
call fcn.0040e769
xor ecx, ecx
test esi, esi
push 0xffffffffffffffff
sete byte [esp + 0x195]
mov byte [esp + 0x194], cl
xor eax, eax
mov dword [esp + 0x19c], ecx
cmp byte [esp + 0x13], al
push ecx
setne al
lea ecx, [esp + 0x1f0]
mov dword [esp + 0x1a4], eax
lea eax, [esp + 0xfc]
push eax
call fcn.0040348d
mov al, byte [esp + 0xf]
xor ecx, ecx
mov byte [esp + 0x192], al
xor eax, eax
push 0x30
mov dword [esp + 0xdc], 7
mov dword [esp + 0xd8], ecx
mov word [esp + 0xc8], ax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
call fcn.0043855d
pop ecx
test eax, eax
je 0x402fc0
lea ecx, [eax + 4]
mov dword [eax], eax
test ecx, ecx
je 0x402d9d
mov dword [ecx], eax
lea ecx, [eax + 8]
test ecx, ecx
je 0x402da6
mov dword [ecx], eax
mov word [eax + 0xc], 0x101
sub esp, 0xc
mov dword [esp + 0x9c], eax
add edi, 8
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0xd4]
push eax
push edi
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x1ac]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0x54]
push ecx
push eax
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x50]
call fcn.00408764
sub esp, 0x18
mov esi, eax
lea eax, [esp + 0xdc]
mov ecx, esp
push eax
call fcn.004030a6
mov edx, dword [edi]
mov ecx, edi
push ebx
call dword [edx + 0x44]
push edx
push eax
lea edx, [esp + 0x8c]
call fcn.0040233b
xor ebx, ebx
add esp, 0x24
test esi, esi
setne bl
cmp dword [esp + 0x14], 0
je 0x402e42
push dword [esp + 0x14]
call fcn.0043850d
pop ecx
lea ecx, [esp + 0x90]
call fcn.004031f4
push 0
push 1
lea ecx, [esp + 0xcc]
call fcn.00403547
lea ecx, [esp + 0x190]
call fcn.00402fc6
push 0
push 1
lea ecx, [esp + 0xb4]
call fcn.00403547
lea ecx, [esp + 0x50]
mov dword [esp + 0x9c], 0x457a98
call fcn.00404246
jmp 0x402f34
lea esi, [edi + 4]
xor ebx, ebx
push esi
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], ebx
push ecx
lea ecx, [esp + 0xe4]
mov dword [esp + 0x20], ebx
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x28], ebx
push ecx
push ecx
push ecx
push eax
push ecx
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x50]
push eax
lea edx, [esp + 0x38]
call fcn.0040ac42
add esp, 0x24
mov edi, eax
cmp dword [esp + 0x14], ebx
je 0x402ee2
push dword [esp + 0x14]
call fcn.0043850d
pop ecx
test esi, esi
je 0x402f2d
cmp dword [esi + 4], ebx
je 0x402f2d
lea eax, [esp + 0xc4]
push 0x27d6
push eax
call fcn.004040ec
mov ecx, eax
call fcn.0040857e
push ecx
lea eax, [esp + 0xc8]
mov ecx, 0x469b08
push eax
call fcn.004021f2
mov ecx, eax
call fcn.0040230f
push ebx
push 1
lea ecx, [esp + 0xcc]
call fcn.00403547
xor ebx, ebx
test edi, edi
setne bl
lea ecx, [esp + 0x44]
call fcn.004035e3
lea ecx, [esp + 0x30]
call fcn.004035e3
push 0
push 1
lea ecx, [esp + 0xfc]
call fcn.00403547
lea ecx, [esp + 0x150]
call fcn.00407b90
push 0
push 1
lea ecx, [esp + 0xe4]
call fcn.00403547
lea ecx, [esp + 0x58]
call fcn.004031b4
jmp 0x402f82
call fcn.00402543
lea ecx, [esp + 0x124]
call fcn.0040d694
push 0
push 1
lea ecx, [esp + 0x114]
call fcn.00403547
lea ecx, [esp + 0x24]
call fcn.004035e3
mov ecx, dword [esp + 0x23c]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00437670
mov esp, ebp
pop ebp
ret 4
call fcn.0043497c
int3