Function at 0x4020c0
Capabilities:
Accept command line arguments
Create directory
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4904
call fcn.00414ba0
mov eax, dword [0x41b374]
xor eax, esp
mov dword [esp + 0x4900], eax
push ebx
push esi
xor eax, eax
mov dword [esp + 0xc], eax
push edi
push 7
pop ebx
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1c4], eax
mov word [esp + 0x1b4], ax
lea eax, [esp + 0x1c]
xor ecx, ecx
push eax
mov dword [esp + 0x1b0], ebx
mov word [esp + 0x19c], cx
mov dword [esp + 0x1cc], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
push dword [eax]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x19c]
push eax
call fcn.00403b50
mov eax, dword [esp + 0x1a8]
push 4
pop edi
cmp eax, edi
jb 0x40218b
push 0xffffffffffffffff
add eax, 0xfffffffc
push eax
lea eax, [esp + 0x1a0]
push eax
lea esi, [esp + 0x16c]
mov dword [esp + 0x1c], 1
call fcn.00402fa6
cmp dword [eax + 0x14], 8
jb 0x402175
mov eax, dword [eax]
push str..exe
push eax
call fcn.0040a882
pop ecx
pop ecx
mov byte [esp + 0xf], 0
test eax, eax
je 0x402190
mov byte [esp + 0xf], 1
test byte [esp + 0x10], 1
je 0x4021aa
push 1
xor edi, edi
lea esi, [esp + 0x164]
call fcn.004014f1
push 4
pop edi
cmp byte [esp + 0xf], 0
je 0x4021c3
push str..exe
lea eax, [esp + 0x19c]
push eax
call fcn.00402ee9
and dword [esp + 0x18c], 0
xor esi, esi
inc esi
xor eax, eax
mov byte [esp + 0xf], 1
mov byte [esp + 0x19], 1
mov byte [esp + 0x1a], 0
mov byte [esp + 0x1b], 1
mov dword [esp + 0x190], ebx
mov word [esp + 0x17c], ax
mov dword [esp + 0x10], esi
cmp dword [esp + 0x1c], esi
jle 0x4023f2
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + esi*4]
mov ecx, str.__sfx.debug
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402233
test dx, dx
je 0x40222f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402233
add eax, edi
add ecx, edi
test dx, dx
jne 0x40220f
xor eax, eax
jmp 0x402238
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40225d
mov ebx, dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
jmp 0x40224c
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call ebx
test eax, eax
je 0x402244
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x4023e3
mov ecx, str.__sfx.archive
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402288
test dx, dx
je 0x402284
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402288
add eax, edi
add ecx, edi
test dx, dx
jne 0x402264
xor eax, eax
jmp 0x40228d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4022b9
mov eax, dword [esp + 0x1c]
dec eax
cmp esi, eax
jge 0x4022b9
mov eax, dword [esp + 0x14]
inc esi
push dword [eax + esi*4]
lea eax, [esp + 0x19c]
push eax
mov byte [esp + 0x17], 0
call fcn.00403b50
jmp 0x4023e3
mov ecx, str.__sfx.executable
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4022e4
test dx, dx
je 0x4022e0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4022e4
add eax, edi
add ecx, edi
test dx, dx
jne 0x4022c0
xor eax, eax
jmp 0x4022e9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402310
mov eax, dword [esp + 0x1c]
dec eax
cmp esi, eax
jge 0x402310
mov eax, dword [esp + 0x14]
inc esi
push dword [eax + esi*4]
lea eax, [esp + 0x180]
push eax
call fcn.00402ee9
jmp 0x4023e3
mov ecx, str.__sfx.directory
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40233b
test dx, dx
je 0x402337
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40233b
add eax, edi
add ecx, edi
test dx, dx
jne 0x402317
xor eax, eax
jmp 0x402340
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402371
mov eax, dword [esp + 0x1c]
dec eax
cmp esi, eax
jge 0x402371
mov eax, dword [esp + 0x14]
inc esi
push dword [eax + esi*4]
lea eax, [esp + 0x44fc]
push 0x104
push eax
mov byte [esp + 0x26], 1
call fcn.0040ab03
add esp, 0xc
jmp 0x4023e3
mov ecx, str.__sfx.norun
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40239c
test dx, dx
je 0x402398
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40239c
add eax, edi
add ecx, edi
test dx, dx
jne 0x402378
xor eax, eax
jmp 0x4023a1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4023ab
mov byte [esp + 0x19], al
jmp 0x4023e3
mov ecx, str.__sfx.nocleanup
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4023d6
test dx, dx
je 0x4023d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4023d6
add eax, edi
add ecx, edi
test dx, dx
jne 0x4023b2
xor eax, eax
jmp 0x4023db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4023f2
mov byte [esp + 0x1b], al
inc esi
mov dword [esp + 0x10], esi
cmp esi, dword [esp + 0x1c]
jl 0x402201
lea eax, [esp + 0x44]
push eax
lea ebx, [esp + 0x94]
mov dword [esp + 0x44], 0x419020
mov dword [esp + 0x94], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
call fcn.00403e68
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x40], vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
lea eax, [esp + 0x44]
push eax
call fcn.00403f29
and dword [esp + 0x80], 0
mov dword [esp + 0x44], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov dword [esp + 0x84], 4
cmp esi, dword [esp + 0x1c]
jge 0x4024bc
jmp 0x402456
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x40]
push 0x418f38
push eax
call fcn.00404293
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
push dword [eax + esi*4]
lea esi, [esp + 0x164]
call fcn.00402eca
mov ecx, esi
lea ebx, [esp + 0x1d0]
call fcn.00401ece
lea ecx, [esp + 0x40]
push ecx
mov ecx, eax
call fcn.00404498
pop ecx
push 1
xor edi, edi
mov esi, ebx
call fcn.004014f1
push 1
lea esi, [esp + 0x164]
call fcn.004014f1
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x1c]
jl 0x402452
push 0x104
lea eax, [esp + 0x4704]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
and dword [esp + 0xfc], 0
xor eax, eax
mov word [esp + 0xec], ax
lea eax, [esp + 0x4700]
mov dword [esp + 0x100], 7
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4024f8
sub eax, ecx
sar eax, 1
lea ecx, [esp + 0x4700]
lea esi, [esp + 0xec]
call fcn.00401476
mov ecx, esi
lea ebx, [esp + 0x160]
call fcn.00401ece
mov esi, eax
lea eax, [esp + 0x40]
push str.___origExePath
push eax
call fcn.00404293
push eax
mov ecx, esi
call fcn.00404498
add esp, 0xc
push 1
xor edi, edi
mov esi, ebx
call fcn.004014f1
push 1
lea esi, [esp + 0xf0]
call fcn.004014f1
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x44]
call fcn.0040331d
mov ebx, eax
lea eax, [esp + 0x1b4]
call fcn.00401394
push 1
lea esi, [esp + 0x164]
call fcn.004014f1
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_LocalFree]
and dword [esp + 0x10], edi
xor ebx, ebx
cmp byte [esp + 0xf], bl
je 0x4025e2
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 6]
xor edx, edx
cmp dx, ax
jae 0x4025e2
add ecx, 0x108
mov edx, eax
mov eax, dword [ecx + 4]
add eax, dword [ecx]
cmp dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
jb 0x4025d6
lea eax, [esp + 0x10]
mov eax, dword [eax]
add ecx, 0x28
dec edx
mov dword [esp + 0x10], eax
jne 0x4025bf
xor eax, eax
mov word [esp + 0x108], ax
mov al, byte [esp + 0x1b]
mov dword [esp + 0x11c], 7
mov dword [esp + 0x118], ebx
mov byte [esp + 0x124], al
mov dword [esp + 0x28], ebx
call fcn.00403fd5
mov dword [esp + 0x24], eax
mov dword [eax], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 8], eax
mov eax, dword [esp + 0x24]
mov byte [eax + 0x28], 1
mov eax, dword [esp + 0x24]
lea esi, [esp + 0x458]
mov byte [eax + 0x29], 1
call fcn.0040102d
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x198]
mov edx, esi
call fcn.004010c0
test eax, eax
je 0x40274b
lea esi, [esp + 0x44d4]
lea eax, [esp + 0x4480]
call fcn.00405471
cmp dword [esp + 0x44d0], 0xffffffff
je 0x402686
push dword [esp + 0x44d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x44e8], ebx
je 0x4026a7
push dword [esp + 0x44e8]
lea eax, [esp + 0x44d8]
push eax
call dword [esp + 0x44e0]
pop ecx
pop ecx
lea eax, [esp + 0x20]
push eax
call fcn.004038d8
cmp byte [esp + 0x124], 0
je 0x4026d2
lea eax, [esp + 0x208]
push eax
lea eax, [esp + 0x10c]
push eax
mov ecx, eax
call fcn.00401d48
xor ebx, ebx
inc ebx
push ebx
xor edi, edi
lea esi, [esp + 0x10c]
call fcn.004014f1
lea ecx, [esp + 0x90]
call fcn.004032de
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x94], vtable.std::ios_base.0
call fcn.004097f2
pop ecx
push ebx
lea esi, [esp + 0x180]
call fcn.004014f1
push ebx
lea esi, [esp + 0x1b8]
call fcn.004014f1
push ebx
xor edi, edi
lea esi, [esp + 0x19c]
call fcn.004014f1
mov ecx, dword [esp + 0x490c]
pop edi
pop esi
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.0040a120
mov esp, ebp
pop ebp
ret 0x10
cmp byte [esp + 0x1a], 0
jne 0x402781
lea eax, [esp + 0x208]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [esp + 0x44f8]
push eax
push ebx
push 0x418f4c
lea eax, [esp + 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [esp + 0x44f8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esp + 0x44f8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x402799
sub eax, edx
sar eax, 1
lea ecx, [esp + 0x44f8]
lea esi, [esp + 0x108]
call fcn.00401476
push ebx
lea eax, [esp + 0x44fc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [esp + 0x4490]
mov ecx, dword [esp + 0x449c]
shl ecx, 5
add ecx, eax
mov dword [esp + 0x10], eax
cmp eax, ecx
je 0x402c31
mov dword [esp + 0x34], 0x2f
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x144]
lea edx, [esp + 0x458]
call fcn.00401142
cmp dword [esp + 0x18c], 0
jne 0x4028aa
cmp dword [esp + 0x154], 6
jbe 0x40286c
cmp dword [esp + 0x158], 8
mov eax, dword [esp + 0x144]
jae 0x402838
lea eax, [esp + 0x144]
push 6
push str.startme
push eax
call fcn.0040aa2c
add esp, 0xc
test eax, eax
jne 0x402862
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x14c]
lea ecx, [esp + 0x184]
call fcn.004013dc
cmp dword [esp + 0x18c], 0
jne 0x4028aa
mov ecx, dword [esp + 0x154]
push 4
pop eax
cmp ecx, eax
jbe 0x4028aa
lea esi, [ecx - 4]
push str..exe
mov ebx, eax
lea ecx, [esp + 0x148]
call fcn.00403bff
test eax, eax
jne 0x4028aa
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x14c]
lea ecx, [esp + 0x184]
call fcn.004013dc
and dword [esp + 0xfc], 0
xor eax, eax
mov word [esp + 0xec], ax
lea eax, [esp + 0x44f8]
mov dword [esp + 0x100], 7
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4028d1
sub eax, edx
sar eax, 1
lea ecx, [esp + 0x44f8]
lea esi, [esp + 0xec]
call fcn.00401476
lea eax, [esp + 0x144]
push eax
mov ebx, 0x418f64
mov eax, esi
push ebx
push eax
lea eax, [esp + 0x16c]
call fcn.0040426f
pop ecx
pop ecx
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, eax
call fcn.00404621
pop ecx
pop ecx
push 1
xor edi, edi
lea esi, [esp + 0x164]
call fcn.004014f1
push 1
lea esi, [esp + 0xf0]
call fcn.004014f1
lea eax, [esp + 0x34]
push eax
xor ecx, ecx
lea eax, [esp + 0x148]
call fcn.00403b78
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
je 0x402ac1
mov dword [esp + 0x30], 0x2f
push dword [esp + 0x14]
lea eax, [esp + 0x148]
push 0
push eax
lea esi, [esp + 0x16c]
call fcn.00402fa6
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x160]
push eax
lea eax, [esp + 0x3c]
push eax
lea edi, [esp + 0x28]
call fcn.0040391e
cmp dword [eax], esi
jne 0x402a8c
and dword [esp + 0xfc], 0
xor eax, eax
mov word [esp + 0xec], ax
lea eax, [esp + 0x44f8]
mov dword [esp + 0x100], 7
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4029cc
sub eax, edx
sar eax, 1
lea ecx, [esp + 0x44f8]
lea esi, [esp + 0xec]
call fcn.00401476
lea eax, [esp + 0x160]
push eax
mov eax, esi
push ebx
push eax
lea eax, [esp + 0x1f8]
call fcn.0040426f
pop ecx
pop ecx
lea ecx, [esp + 0x12c]
push ecx
mov ecx, eax
call fcn.00404621
pop ecx
pop ecx
push 1
xor edi, edi
lea esi, [esp + 0x1f0]
call fcn.004014f1
push 1
lea esi, [esp + 0xf0]
call fcn.004014f1
cmp dword [esp + 0x13c], 8
mov eax, dword [esp + 0x128]
jae 0x402a4f
lea eax, [esp + 0x128]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x128]
push eax
lea ecx, [esp + 0x24]
call fcn.004048ee
push eax
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004046da
push 1
xor edi, edi
lea esi, [esp + 0x12c]
call fcn.004014f1
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x30]
push eax
inc ecx
lea eax, [esp + 0x148]
call fcn.00403b78
push 1
xor edi, edi
lea esi, [esp + 0x164]
mov dword [esp + 0x18], eax
call fcn.004014f1
cmp dword [esp + 0x14], 0xffffffff
jne 0x402969
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x19], 0
je 0x402bd6
and dword [esp + 0x138], 0
xor eax, eax
mov word [esp + 0x128], ax
lea eax, [esp + 0x44f8]
mov dword [esp + 0x13c], 7
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402af6
sub eax, edx
sar eax, 1
lea ecx, [esp + 0x44f8]
lea esi, [esp + 0x128]
call fcn.00401476
lea eax, [esp + 0x144]
push eax
mov eax, esi
push ebx
push eax
lea eax, [esp + 0x1f8]
call fcn.0040426f
pop ecx
pop ecx
lea ecx, [esp + 0xf0]
push ecx
mov ecx, eax
call fcn.00404621
pop ecx
pop ecx
push 1
xor edi, edi
lea esi, [esp + 0x1f0]
call fcn.004014f1
push 1
lea esi, [esp + 0x12c]
call fcn.004014f1
mov esi, dword [esp + 0x24]
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x40]
push eax
lea edi, [esp + 0x28]
call fcn.0040391e
cmp dword [eax], esi
jne 0x402bc4
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x402b97
lea eax, [esp + 0xec]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x24]
call fcn.004048ee
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004046da
push 1
xor edi, edi
lea esi, [esp + 0xf0]
call fcn.004014f1
jmp 0x402bf1
lea edx, [esp + 0x1d0]
lea eax, [esp + 0x458]
call fcn.004011c1
test eax, eax
jne 0x402cc7
push 1
xor edi, edi
lea esi, [esp + 0x1d4]
call fcn.004014f1
push 1
lea esi, [esp + 0x148]
call fcn.004014f1
mov eax, dword [esp + 0x449c]
add dword [esp + 0x10], 0x20
shl eax, 5
add eax, dword [esp + 0x4490]
cmp dword [esp + 0x10], eax
jne 0x4027f1
xor ebx, ebx
lea esi, [esp + 0x44d4]
lea eax, [esp + 0x4480]
call fcn.00405471
cmp dword [esp + 0x44d0], 0xffffffff
je 0x402c5b
push dword [esp + 0x44d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x44e8], ebx
je 0x402c7c
push dword [esp + 0x44e8]
lea eax, [esp + 0x44d8]
push eax
call dword [esp + 0x44e0]
pop ecx
pop ecx
cmp byte [esp + 0x19], 0
je 0x402d31
cmp dword [esp + 0x18c], ebx
jne 0x402db4
lea eax, [esp + 0x20]
push eax
call fcn.004038d8
cmp byte [esp + 0x124], 0
je 0x402cbf
lea eax, [esp + 0x208]
push eax
lea eax, [esp + 0x10c]
push eax
mov ecx, eax
call fcn.00401d48
or ebx, 0xffffffff
jmp 0x402d5c
xor ebx, ebx
inc ebx
push ebx
xor edi, edi
lea esi, [esp + 0x1d4]
call fcn.004014f1
push ebx
lea esi, [esp + 0x148]
call fcn.004014f1
lea esi, [esp + 0x44d4]
lea eax, [esp + 0x4480]
call fcn.00405471
cmp dword [esp + 0x44d0], 0xffffffff
je 0x402d10
push dword [esp + 0x44d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x44e8], edi
je 0x402d31
push dword [esp + 0x44e8]
lea eax, [esp + 0x44d8]
push eax
call dword [esp + 0x44e0]
pop ecx
pop ecx
lea eax, [esp + 0x20]
push eax
call fcn.004038d8
cmp byte [esp + 0x124], 0
je 0x402d5c
lea eax, [esp + 0x208]
push eax
lea eax, [esp + 0x10c]
push eax
mov ecx, eax
call fcn.00401d48
push 1
xor edi, edi
lea esi, [esp + 0x10c]
call fcn.004014f1
lea ecx, [esp + 0x90]
call fcn.004032de
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x94], vtable.std::ios_base.0
call fcn.004097f2
pop ecx
push 1
lea esi, [esp + 0x180]
call fcn.004014f1
push 1
lea esi, [esp + 0x1b8]
call fcn.004014f1
push 1
jmp 0x402724
xor eax, eax
mov word [esp + 0x128], ax
lea eax, [esp + 0x44f8]
mov dword [esp + 0x13c], 7
mov dword [esp + 0x138], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x402dda
sub eax, edx
sar eax, 1
lea ecx, [esp + 0x44f8]
lea esi, [esp + 0x128]
call fcn.00401476
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0xf0]
push eax
lea ebx, [esp + 0x1bc]
call fcn.0040464a
pop ecx
mov esi, eax
pop ecx
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x12c]
push 0x418f64
push eax
lea eax, [esp + 0x16c]
call fcn.0040426f
pop ecx
pop ecx
lea ecx, [esp + 0x1f0]
push ecx
mov ecx, eax
call fcn.00404621
push eax
mov eax, esi
call fcn.0040202b
xor ebx, ebx
add esp, 0xc
inc ebx
push ebx
xor edi, edi
lea esi, [esp + 0x1f0]
mov dword [esp + 0x34], eax
call fcn.004014f1
push ebx
lea esi, [esp + 0x164]
call fcn.004014f1
push ebx
lea esi, [esp + 0x12c]
call fcn.004014f1
push ebx
lea esi, [esp + 0xf0]
call fcn.004014f1
lea eax, [esp + 0x20]
push eax
call fcn.004038d8
cmp byte [esp + 0x124], 0
je 0x402ec1
lea eax, [esp + 0x208]
push eax
lea eax, [esp + 0x10c]
push eax
mov ecx, eax
call fcn.00401d48
mov ebx, dword [esp + 0x30]
jmp 0x402d5c