Function at 0x409f00
Capabilities:
Create directory
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov eax, 0x1c9c
push edi
push esi
push ebx
call fcn.00428e10
sub esp, eax
movzx eax, word [0x45634c]
movzx edx, word [0x45634e]
mov esi, dword [esp + 0x1cb0]
movzx ecx, word [0x456352]
lea ebx, [esp + 0x370]
mov dword [esp + 4], 0x840
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov eax, dword [0x450484]
mov dword [esp + 0x1c], ecx
add eax, 0x1198
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.004090b0
mov dword [esp + 0x18], 0
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
mov dword [esp], ebx
call edi
sub esp, 0x1c
mov dword [esp + 0xc8], eax
cmp eax, 0xffffffff
je 0x40c667
mov eax, dword [0x450480]
lea edi, [esp + 0x194]
lea ebx, [eax + 0x168c]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0x4c], edi
call edi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x16df]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
sub esp, 0x14
lea eax, [esp + 0xbb0]
mov dword [esp + 0xc], 0x10e0
mov dword [esp], eax
mov eax, dword [0x42a308]
mov dword [esp + 8], 0x457380
mov dword [esp + 4], 0x10e0
mov dword [esp + 0x188], eax
call eax
mov dword [esp + 0x38], 0
lea edx, [esp + 0x1c90]
lea eax, [esp + 0xbb0]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
lea esi, [esi]
mov ecx, dword [eax]
mov esi, dword [eax + 8]
xor ebx, ebx
xor edi, edi
add esi, ecx
mov ecx, dword [eax + 0x10]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x18]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x20]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x28]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x30]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x38]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x40]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x48]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x50]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x58]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x60]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x68]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x70]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x78]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x80]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x88]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x90]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x98]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xa0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xa8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xb0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xb8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xc0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xc8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xd0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xd8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xe0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xe8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xf0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xf8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x100]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x108]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x110]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x118]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x120]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x128]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x130]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x138]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x140]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x148]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x150]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x158]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x160]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x168]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x170]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x178]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x180]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x188]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x190]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x198]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1a0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1a8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1b0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1b8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1c0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1c8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1d0]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1d8]
adc edi, ebx
xor ebx, ebx
add esi, ecx
adc edi, ebx
add dword [esp + 0x40], esi
adc dword [esp + 0x44], edi
mov ecx, dword [eax + 4]
xor ebx, ebx
xor edi, edi
mov esi, dword [eax + 0xc]
add esi, ecx
mov ecx, dword [eax + 0x14]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x24]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x2c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x34]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x3c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x44]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x4c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x54]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x5c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x64]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x6c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x74]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x7c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x84]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x8c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x94]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x9c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xa4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xac]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xb4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xbc]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xc4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xcc]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xd4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xdc]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xe4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xec]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xf4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0xfc]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x104]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x10c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x114]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x11c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x124]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x12c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x134]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x13c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x144]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x14c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x154]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x15c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x164]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x16c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x174]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x17c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x184]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x18c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x194]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x19c]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1a4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1ac]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1b4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1bc]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1c4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1cc]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1d4]
adc edi, ebx
xor ebx, ebx
add esi, ecx
mov ecx, dword [eax + 0x1dc]
adc edi, ebx
xor ebx, ebx
add esi, ecx
adc edi, ebx
add dword [esp + 0x38], esi
adc dword [esp + 0x3c], edi
add eax, 0x1e0
cmp eax, edx
jne 0x40a098
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
xor esi, esi
movzx ebx, word [str._r_n__]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1b4], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1b8], eax
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x1bc], edx
jmp 0x40a64d
cmp dword [esp + 0x270], 2
jne 0x40a6fb
add esi, 1
cmp esi, 0x10e0
je 0x40a6fb
imul eax, esi, 0xcccccccd
ror eax, 3
cmp eax, 0x6666666
ja 0x40a6a1
lea eax, [esp + 0x270]
mov word [esp + 0x1d0], bx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov dword [esp], edi
call ebp
sub esp, 0x14
test eax, eax
je 0x40a6fb
cmp dword [esp + 0x270], 2
jne 0x40a6fb
movzx eax, byte [esp + esi + 0xbb0]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 2
mov edx, eax
shr al, 4
mov dword [esp], edi
add eax, 0x61
and edx, 0xf
mov byte [esp + 0x1d1], al
lea eax, [esp + 0x270]
add edx, 0x41
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1d0]
mov byte [esp + 0x1d0], dl
mov dword [esp + 4], eax
call ebp
sub esp, 0x14
test eax, eax
jne 0x40a630
lea eax, [esp + 0x270]
mov word [esp + 0x1d0], bx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], 0
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], 2
call eax
sub esp, 0x14
test eax, eax
je 0x40c78c
cmp dword [esp + 0x270], 2
jne 0x40c78c
lea ebp, [esp + 0x1b0]
xor esi, esi
mov edi, dword [esp + 0xc8]
mov eax, ebp
mov ebp, esi
mov esi, eax
jmp 0x40a782
cmp dword [esp + 0x270], 2
jne 0x40a7d8
add ebp, 1
cmp ebp, 0x10
je 0x40a7d8
movzx eax, byte [esi + ebp]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 2
mov ecx, eax
shr al, 4
mov dword [esp], edi
add eax, 0x61
and ecx, 0xf
mov byte [esp + 0x1d1], al
lea eax, [esp + 0x270]
add ecx, 0x41
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov byte [esp + 0x1d0], cl
call eax
sub esp, 0x14
test eax, eax
jne 0x40a770
mov ebp, esi
lea eax, [esp + 0x270]
mov word [esp + 0x1d0], bx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], 0
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], 2
call eax
sub esp, 0x14
test eax, eax
je 0x40a8a7
cmp dword [esp + 0x270], 2
jne 0x40a8a7
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0x4c]
xor ebx, ebx
jmp 0x40a852
cmp dword [esp + 0x270], 2
jne 0x40a8a7
add ebx, 1
cmp ebx, 4
je 0x40a8a7
movzx eax, byte [ebx + 0x456348]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 2
mov edx, eax
shr al, 4
mov dword [esp], esi
add eax, 0x61
and edx, 0xf
mov byte [esp + 0x1d1], al
lea eax, [esp + 0x270]
add edx, 0x41
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1d0]
mov byte [esp + 0x1d0], dl
mov dword [esp + 4], eax
call edi
sub esp, 0x14
test eax, eax
jne 0x40a840
mov eax, dword [0x450480]
lea edi, [esp + 0x194]
lea ebx, [eax + 0x16e4]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc8]
mov esi, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x16ea]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
movzx eax, word [0x45634c]
sub esp, 0x14
mov dword [esp + 0x14], eax
movzx eax, word [0x456352]
mov dword [esp + 4], 0x100
mov dword [esp + 0x10], eax
movzx eax, word [0x45634e]
mov dword [esp + 0xc], eax
mov eax, dword [0x450480]
add eax, 0x1474
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
lea eax, [esp + 0x270]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call esi
mov ebx, dword [0x450480]
sub esp, 0x14
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0xaf]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x128]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x16f2]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x171d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
sub esp, 0x14
lea eax, [esp + 0x270]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x184]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x16c]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x1867]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x1d3]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x18f3]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call esi
sub esp, 0x14
lea eax, [esp + 0xd90]
mov dword [esp + 0x100], 0
mov dword [esp + 0xcc], eax
mov dword [esp + 0x104], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0x18c], ebp
lea esi, [esi]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd0], 0
sub eax, 0x1e0
mov dword [esp + 0x184], eax
mov ebp, eax
mov dword [esp + 0xd4], 0
lea esi, [esi]
mov eax, dword [ebp + 4]
xor esi, esi
mov ebx, dword [ebp]
xor edx, edx
mov dword [esp + 0x54], esi
add dword [esp + 0x150], ebx
mov dword [esp + 0x58], eax
adc dword [esp + 0x154], esi
mov esi, dword [ebp + 0xc]
add dword [esp + 0x158], eax
mov eax, dword [ebp + 8]
adc dword [esp + 0x15c], edx
xor edi, edi
mov dword [esp + 0x5c], edx
xor edx, edx
mov dword [esp + 0x50], ebx
add dword [esp + 0x168], eax
mov dword [esp + 0x60], eax
adc dword [esp + 0x16c], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
add dword [esp + 0x170], esi
mov ecx, dword [ebp + 0x10]
adc dword [esp + 0x174], edi
xor ebx, ebx
mov esi, dword [ebp + 0x14]
xor edi, edi
mov dword [esp + 0x74], ebx
add dword [esp + 0x178], ecx
adc dword [esp + 0x17c], ebx
mov ebx, dword [ebp + 0x18]
add dword [esp + 0x118], esi
mov edx, ebx
adc dword [esp + 0x11c], edi
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x78], esi
xor esi, esi
mov dword [esp + 0x70], ecx
mov ecx, esi
xor esi, esi
mov dword [esp + 0x7c], edi
add dword [esp + 0xe0], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
adc dword [esp + 0xe4], ecx
mov esi, dword [ebp + 0x24]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
add dword [esp + 0x160], ecx
mov ecx, dword [ebp + 0x20]
adc dword [esp + 0x164], ebx
xor ebx, ebx
mov edx, dword [ebp + 0x2c]
xor edi, edi
mov dword [esp + 0x8c], ebx
add dword [esp + 0x148], ecx
adc dword [esp + 0x14c], ebx
mov ebx, dword [ebp + 0x28]
add dword [esp + 0x128], esi
mov dword [esp + 0x88], ecx
adc dword [esp + 0x12c], edi
xor ecx, ecx
mov dword [esp + 0x90], esi
xor esi, esi
mov dword [esp + 0x94], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], esi
add dword [esp + 0x120], ebx
adc dword [esp + 0x124], esi
mov esi, dword [ebp + 0x34]
add dword [esp + 0xf8], edx
mov edx, dword [ebp + 0x30]
adc dword [esp + 0xfc], ecx
xor ecx, ecx
xor edi, edi
mov dword [esp + 0xa0], edx
add dword [esp + 0x140], edx
mov edx, dword [ebp + 0x3c]
adc dword [esp + 0x144], ecx
mov dword [esp + 0xa4], ecx
add dword [esp + 0x110], esi
mov dword [esp + 0xa8], esi
mov esi, dword [ebp + 0x38]
adc dword [esp + 0x114], edi
xor ecx, ecx
mov dword [esp + 0xac], edi
xor edi, edi
add dword [esp + 0xf0], esi
mov eax, dword [ebp + 0x44]
adc dword [esp + 0xf4], edi
mov dword [esp + 0xb0], edx
add dword [esp + 0x130], edx
mov dword [esp + 0xb4], ecx
adc dword [esp + 0x134], ecx
mov ecx, dword [ebp + 0x40]
xor ebx, ebx
xor edx, edx
mov dword [esp + 0xb8], eax
add dword [esp + 0x108], ecx
adc dword [esp + 0x10c], ebx
add dword [esp + 0xe8], eax
mov eax, dword [ebp + 0x48]
adc dword [esp + 0xec], edx
mov dword [esp + 0xbc], edx
xor edx, edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x54]
add eax, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
add eax, dword [esp + 0x80]
adc edx, dword [esp + 0x84]
add eax, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
add eax, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
add eax, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
add eax, esi
mov esi, dword [esp + 0xc0]
adc edx, edi
mov edi, dword [esp + 0xc4]
add eax, ecx
mov ecx, dword [ebp + 0x4c]
adc edx, ebx
add eax, esi
adc edx, edi
add dword [esp + 0xd0], eax
mov eax, dword [esp + 0x58]
adc dword [esp + 0xd4], edx
xor ebx, ebx
mov edx, dword [esp + 0x5c]
add eax, dword [esp + 0x68]
adc edx, dword [esp + 0x6c]
add eax, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
add eax, dword [esp + 0x90]
adc edx, dword [esp + 0x94]
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
add eax, dword [esp + 0xa8]
adc edx, dword [esp + 0xac]
add eax, dword [esp + 0xb0]
adc edx, dword [esp + 0xb4]
add eax, dword [esp + 0xb8]
adc edx, dword [esp + 0xbc]
add eax, ecx
adc edx, ebx
add dword [esp + 0xd8], eax
adc dword [esp + 0xdc], edx
add dword [esp + 0x138], esi
adc dword [esp + 0x13c], edi
add dword [esp + 0x100], ecx
adc dword [esp + 0x104], ebx
add ebp, 0x50
cmp dword [esp + 0xcc], ebp
jne 0x40ae10
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
lea edi, [esp + 0x194]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x1d4], edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x1dc], edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x1e4], edx
mov edx, dword [esp + 0x174]
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x1ec], edx
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x1f4], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x1fc], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x204], edx
mov edx, dword [esp + 0x164]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], edx
mov eax, dword [esp + 0x148]
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x214], edx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x124]
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x224], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x22c], edx
mov edx, dword [esp + 0x144]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x234], edx
mov edx, dword [esp + 0x114]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x23c], edx
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x244], edx
mov edx, dword [esp + 0x134]
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], edx
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x254], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x25c], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x1c4], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x1cc], edx
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x264], edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x268], eax
mov eax, dword [0x450480]
mov dword [esp + 0x26c], edx
lea ebx, [eax + 0x191e]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc8]
mov esi, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x1923]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x196f]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
sub esp, 0x14
add dword [esp + 0x180], 1
mov eax, dword [esp + 0x180]
mov dword [esp + 4], 0x100
mov dword [esp + 0xc], eax
mov eax, dword [0x450480]
add eax, 0x15c4
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
lea eax, [esp + 0x270]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 4], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x1923]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x19dc]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
call esi
sub esp, 0x14
mov eax, dword [esp + 0x1cc]
mov ebp, dword [esp + 0x1c8]
mov edi, eax
or edi, ebp
je 0x40c333
mov esi, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1c4]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x60], eax
call fcn.00428f80
mov dword [esp + 0xc], ebp
mov esi, eax
mov ecx, eax
mov ebx, edx
shrd eax, edx, 0x14
and eax, 0xfffff
shr ebx, 8
and ecx, 0xfffff
mov edi, edx
add ecx, eax
mov eax, ebx
mov ebx, edx
and eax, 0xfffff
shr ebx, 0x1c
add ecx, eax
mov eax, 0x51eb851f
add ecx, ebx
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
xor edx, edx
lea eax, [eax + eax*4]
mov dword [esp + 0x3c], edx
sub ecx, eax
mov eax, 0xc28f5c29
sub esi, ecx
mov dword [esp + 0x38], ecx
sbb edi, edx
imul edx, esi, 0x8f5c28f5
imul ecx, edi, 0xc28f5c29
add ecx, edx
mul esi
mov ebx, eax
mov esi, eax
mov edi, edx
and ebx, 3
add edi, ecx
xor ecx, ecx
mov eax, ebx
mov ebx, 0x19
mul ebx
add edx, ecx
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov ecx, edi
mov dword [esp + 0x54], edx
mov edx, esi
mov esi, dword [esp + 0x40]
shr ecx, 2
shrd edx, edi, 2
mov edi, dword [esp + 0x44]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], edx
mov eax, esi
mov edx, edi
mov dword [esp + 0x5c], ecx
mov ecx, esi
shrd eax, edx, 0x14
mov edx, edi
and ecx, 0xfffff
mov dword [esp + 0x3c], 0
and eax, 0xfffff
shr edx, 8
add ecx, eax
mov eax, edx
mov edx, edi
and eax, 0xfffff
shr edx, 0x1c
add ecx, eax
mov eax, 0x51eb851f
add ecx, edx
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, edi
mov edi, 0xc28f5c29
lea eax, [eax + eax*4]
sub ecx, eax
mov eax, esi
mov dword [esp + 0x38], ecx
sub eax, dword [esp + 0x38]
sbb edx, dword [esp + 0x3c]
imul ecx, edx, 0xc28f5c29
imul edx, eax, 0x8f5c28f5
add ecx, edx
mul edi
mov edi, edx
mov esi, eax
add edi, ecx
mov ecx, eax
and ecx, 3
mov eax, ecx
mul ebx
mov ebx, dword [esp + 0x50]
add eax, dword [esp + 0x38]
shrd esi, edi, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
shr edi, 2
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
mov eax, dword [0x450480]
mov dword [esp + 4], 0x100
add eax, 0x15ce
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
lea eax, [esp + 0x270]
lea edi, [esp + 0x194]
xor ebp, ebp
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
sub esp, 0x14
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x184]
jmp 0x40b89b
mov dword [esp + 8], ebx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 0xc], edx
call fcn.00428f80
mov dword [esp + 4], 0x100
mov ecx, eax
mov edi, eax
shrd eax, edx, 0x14
mov ebx, edx
and edi, 0xfffff
and eax, 0xfffff
lea esi, [edi + eax]
mov edi, edx
shr edi, 8
mov eax, edi
mov edi, edx
and eax, 0xfffff
shr edi, 0x1c
add esi, eax
mov eax, 0x51eb851f
add esi, edi
xor edi, edi
mul esi
mov dword [esp + 0x74], edi
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
sub esi, eax
sub ecx, esi
mov dword [esp + 0x70], esi
sbb ebx, edi
imul eax, ecx, 0x8f5c28f5
imul esi, ebx, 0xc28f5c29
add esi, eax
mov eax, 0xc28f5c29
mul ecx
mov ebx, edx
mov edi, eax
mov ecx, eax
add ebx, esi
and edi, 3
mov eax, edi
mov esi, ebx
mov edi, 0x19
mov ebx, ecx
mul edi
add eax, dword [esp + 0x70]
shrd ebx, esi, 2
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x1c], edi
add eax, 0x15ce
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov dword [esp], eax
call fcn.00409110
lea eax, [esp + 0x270]
lea edi, [esp + 0x194]
add ebp, 8
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
sub esp, 0x14
add dword [esp + 0x38], 1
mov eax, dword [esp + 0x38]
cmp eax, 0xa
je 0x40bb18
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x54]
xor ebx, ebx
xor edx, edx
mov esi, dword [ebp + 0x144]
add eax, ecx
mov ecx, dword [ebp + 0xa4]
adc edx, ebx
xor ebx, ebx
add ecx, eax
mov eax, dword [ebp + 0xf4]
adc ebx, edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp + 0x50]
adc edx, ebx
xor edi, edi
add esi, eax
mov eax, dword [ebp]
adc edi, edx
xor edx, edx
xor ebx, ebx
add ecx, eax
mov eax, dword [ebp + 0xa0]
adc ebx, edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp + 0xf0]
adc edx, ebx
xor ebx, ebx
add ecx, eax
mov eax, dword [ebp + 0x140]
adc ebx, edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp + 0x190]
adc edx, ebx
xor ebx, ebx
add eax, ecx
mov dword [esp + 0x1c0], eax
mov eax, dword [ebp + 0x194]
adc edx, ebx
mov dword [esp + 0x1c4], edx
xor edx, edx
add eax, esi
mov dword [esp + 0x1c8], eax
mov eax, dword [0x450480]
adc edx, edi
lea edi, [esp + 0x194]
mov dword [esp + 0x1cc], edx
lea ebx, [eax + 0x1923]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
call eax
mov eax, dword [0x450480]
sub esp, 0x14
cmp dword [esp + 0x38], 9
je 0x40baf8
lea ebx, [eax + 0x19dc]
lea edi, [esp + 0x194]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
sub esp, 0x14
mov esi, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1c4]
mov ebx, dword [esp + 0x1c8]
mov edx, dword [esp + 0x1cc]
mov eax, esi
mov dword [esp + 0x58], ebx
shrd eax, edi, 0x14
mov ebx, esi
and ebx, 0xfffff
and eax, 0xfffff
mov dword [esp + 0x60], edx
lea ecx, [ebx + eax]
mov eax, edi
xor ebx, ebx
shr eax, 8
mov dword [esp + 0x54], ebx
and eax, 0xfffff
add ecx, eax
mov eax, edi
shr eax, 0x1c
add ecx, eax
mov eax, 0x51eb851f
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, edi
lea eax, [eax + eax*4]
sub ecx, eax
mov eax, esi
sub eax, ecx
mov dword [esp + 0x50], ecx
sbb edx, ebx
mov dword [esp + 0x40], eax
mov ebx, 0xc28f5c29
imul ecx, edx, 0xc28f5c29
imul edx, dword [esp + 0x40], 0x8f5c28f5
lea eax, [ecx + edx]
mov ecx, eax
mov eax, dword [esp + 0x40]
mul ebx
xor ebx, ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], edx
and eax, 3
add dword [esp + 0x44], ecx
mov ecx, 0x19
mul ecx
mov ecx, dword [esp + 0x40]
add edx, ebx
mov ebx, dword [esp + 0x44]
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shrd ecx, ebx, 2
mov eax, dword [0x450480]
shr ebx, 2
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x40], eax
mov eax, edx
mov dword [esp + 0x68], ecx
or eax, ebx
jne 0x40b758
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], 0x100
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
add eax, 0x15f2
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
jmp 0x40b842
lea ebx, [eax + 0x1a05]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
jmp 0x40b9a1
add dword [esp + 0xcc], 0x1e0
cmp dword [esp + 0x180], 9
jne 0x40adc8
mov eax, dword [0x450480]
lea edi, [esp + 0x194]
mov ebp, dword [esp + 0x18c]
lea ebx, [eax + 0x16c]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc8]
mov esi, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x1923]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x196f]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x1465]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x1923]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call esi
mov eax, dword [0x450480]
sub esp, 0x14
lea ebx, [eax + 0x19dc]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call esi
sub esp, 0x14
mov eax, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x1b8]
mov edi, eax
or edi, ebx
jne 0x40c3fb
mov esi, dword [esp + 0x1b0]
mov edi, dword [esp + 0x1b4]
mov dword [esp + 4], 0x100
mov ecx, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x1b4]
mov eax, esi
shrd eax, edi, 0x14
and ecx, 0xfffff
and eax, 0xfffff
lea edx, [ecx + eax]
mov eax, ebx
shr ebx, 0x1c
shr eax, 8
and eax, 0xfffff
add eax, edx
lea ecx, [eax + ebx]
mov eax, 0x51eb851f
mul ecx
mov eax, edx
xor edx, edx
shr eax, 3
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
sub ecx, eax
sub esi, ecx
mov dword [esp + 0x38], ecx
sbb edi, edx
imul eax, esi, 0x8f5c28f5
imul ecx, edi, 0xc28f5c29
add ecx, eax
mov eax, 0xc28f5c29
mul esi
mov esi, eax
mov edi, edx
and eax, 3
mov edx, 0x19
add edi, ecx
mul edx
add eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [0x450480]
shrd esi, edi, 2
shr edi, 2
mov dword [esp + 0xc], esi
add eax, 0x15f2
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
lea eax, [esp + 0x270]
lea edi, [esp + 0x194]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
sub esp, 0x14
lea eax, [esp + 0x1d0]
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], ebp
nop
mov eax, dword [0x450480]
lea edi, [esp + 0x194]
lea ebx, [eax + 0x1923]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
call eax
mov eax, dword [0x450480]
sub esp, 0x14
cmp dword [esp + 0x38], 9
je 0x40c64c
lea ebx, [eax + 0x19dc]
lea edi, [esp + 0x194]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
sub esp, 0x14
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ebx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, esi
mov ecx, esi
mov dword [esp + 0x58], ebx
shrd eax, edi, 0x14
mov ebx, edi
and ecx, 0xfffff
and eax, 0xfffff
shr ebx, 8
mov dword [esp + 0x60], edx
mov edx, edi
add ecx, eax
mov eax, ebx
shr edx, 0x1c
xor ebx, ebx
and eax, 0xfffff
mov dword [esp + 0x54], ebx
add ecx, eax
mov eax, 0x51eb851f
add ecx, edx
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, edi
lea eax, [eax + eax*4]
sub ecx, eax
mov eax, esi
sub eax, ecx
mov dword [esp + 0x50], ecx
mov ecx, 0xc28f5c29
sbb edx, ebx
imul ebp, edx, 0xc28f5c29
imul edx, eax, 0x8f5c28f5
add ebp, edx
mul ecx
mov ebx, edx
mov edx, eax
mov ecx, eax
and edx, 3
add ebx, ebp
xor ebp, ebp
mov eax, edx
mov edx, 0x19
mul edx
add edx, ebp
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x54]
shrd ecx, ebx, 2
mov ebp, dword [0x450480]
shr ebx, 2
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x50], ebp
mov ebp, edx
mov dword [esp + 0x68], eax
or ebp, ebx
mov dword [esp + 0x70], ecx
je 0x40c5b0
mov dword [esp + 8], ebx
xor ebp, ebp
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 0xc], edx
call fcn.00428f80
mov dword [esp + 4], 0x100
mov edi, eax
mov ecx, eax
mov esi, eax
mov ebx, edx
shrd edi, edx, 0x14
and esi, 0xfffff
mov eax, edi
mov edi, edx
and eax, 0xfffff
shr edi, 8
add esi, eax
mov eax, edi
mov edi, edx
and eax, 0xfffff
shr edi, 0x1c
add esi, eax
mov eax, 0x51eb851f
add esi, edi
mul esi
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
sub esi, eax
sub ecx, esi
mov edi, esi
sbb ebx, ebp
imul eax, ecx, 0x8f5c28f5
mov ebp, dword [esp + 0x50]
imul esi, ebx, 0xc28f5c29
add esi, eax
mov eax, 0xc28f5c29
mul ecx
mov ebx, edx
mov ecx, eax
mov edx, 0x19
add ebx, esi
mov esi, eax
and esi, 3
mov eax, esi
mul edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x10], edx
add eax, edi
mov edi, ecx
mov ecx, dword [esp + 0x70]
add ebp, 0x15ce
shrd edi, ebx, 2
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x1c], edi
lea edi, [esp + 0x270]
mov dword [esp + 0x14], ecx
mov dword [esp], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebp
call fcn.00409110
mov dword [esp], edi
lea edi, [esp + 0x194]
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
lea edi, [esp + 0x270]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x10], 0
mov dword [esp], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 8], eax
call edi
sub esp, 0x14
add dword [esp + 0x38], 1
mov edi, dword [esp + 0x38]
add dword [esp + 0x40], 0x10
cmp edi, 0xa
jne 0x40bdc0
mov eax, dword [0x450480]
lea edi, [esp + 0x194]
mov ebp, dword [esp + 0x78]
lea ebx, [eax + 0x1ab2]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp], edi
call eax
sub esp, 0x14
lea ebx, [esp + 0x1a0]
mov esi, dword [esp + 0x188]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x45634c
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call esi
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], edi
sub word [esp + 0x1a0], 1
call fcn.00409cd0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x45634c
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call esi
movzx edx, word [esp + 0x1a2]
lea eax, [edx - 1]
cmp dx, 1
ja 0x40c11b
sub word [esp + 0x1a0], 1
mov eax, 0xc
mov word [esp + 0x1a2], ax
mov eax, dword [esp + 0xc8]
lea esi, [esp + 0x198]
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409cd0
mov dword [esp + 4], esi
mov dword [esp], 0x45634c
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
sub esp, 8
mov edi, dword [esp + 0x188]
mov dword [esp], ebp
mov dword [esp + 0xc], 8
mov dword [esp + 8], esi
mov eax, edi
mov dword [esp + 4], 8
call eax
mov dword [esp + 8], ebp
mov eax, edi
add dword [esp + 0x1b0], 0xd5964000
mov dword [esp + 0x188], edi
adc dword [esp + 0x1b4], 0xffffff36
mov dword [esp + 0xc], 8
mov dword [esp + 4], 8
mov dword [esp], esi
call eax
mov edi, dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
sub esp, 8
mov edx, dword [esp + 0xc8]
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.00409cd0
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x188]
add dword [esp + 0x1b0], 0x54d38000
mov dword [esp + 0xc], 8
adc dword [esp + 0x1b4], 0x192
mov dword [esp + 4], 8
mov dword [esp], esi
call ebp
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
sub esp, 8
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409cd0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x45634c
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call ebp
movzx edx, word [esp + 0x1a2]
lea eax, [edx + 1]
cmp dx, 0xb
jbe 0x40c279
add word [esp + 0x1a0], 1
mov eax, 1
mov edi, dword [esp + 0xc8]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], edi
mov word [esp + 0x1a2], ax
call fcn.00409cd0
mov dword [esp], ebx
mov eax, dword [esp + 0x188]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x45634c
mov dword [esp + 4], 0x10
call eax
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], edi
add word [esp + 0x1a0], 1
call fcn.00409cd0
mov eax, dword [0x450480]
lea ebx, [eax + 0x1b47]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x194]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp], edi
call eax
sub esp, 0x14
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
sub esp, 4
add esp, 0x1c9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1c4]
mov dword [esp + 4], 0x100
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [esp + 0x1c4]
mov eax, esi
shrd eax, edi, 0x14
and ecx, 0xfffff
and eax, 0xfffff
lea edx, [ecx + eax]
mov eax, ebx
shr ebx, 0x1c
shr eax, 8
and eax, 0xfffff
add eax, edx
lea ecx, [eax + ebx]
mov eax, 0x51eb851f
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
xor edx, edx
lea eax, [eax + eax*4]
mov dword [esp + 0x3c], edx
sub ecx, eax
mov eax, 0xc28f5c29
sub esi, ecx
mov dword [esp + 0x38], ecx
sbb edi, edx
imul edx, esi, 0x8f5c28f5
imul ecx, edi, 0xc28f5c29
add ecx, edx
mul esi
mov esi, eax
mov edi, edx
and eax, 3
mov edx, 0x19
add edi, ecx
mul edx
add eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [0x450480]
shrd esi, edi, 2
shr edi, 2
mov dword [esp + 0xc], esi
add eax, 0x15f2
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
jmp 0x40b6fe
mov esi, dword [esp + 0x1b0]
mov edi, dword [esp + 0x1b4]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x60], eax
call fcn.00428f80
mov dword [esp + 0x3c], 0
mov edi, edx
mov esi, eax
mov ecx, eax
shrd eax, edx, 0x14
mov edx, edi
and eax, 0xfffff
and ecx, 0xfffff
mov dword [esp + 0xc], ebx
shr edx, 8
add ecx, eax
mov eax, edx
mov edx, edi
and eax, 0xfffff
shr edx, 0x1c
add ecx, eax
mov eax, 0x51eb851f
add ecx, edx
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, esi
lea eax, [eax + eax*4]
sub ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, edi
sub edx, dword [esp + 0x38]
mov edi, 0xc28f5c29
sbb ecx, dword [esp + 0x3c]
imul eax, edx, 0x8f5c28f5
imul ecx, ecx, 0xc28f5c29
add ecx, eax
mov eax, edx
mul edi
add edx, ecx
mov esi, eax
xor ecx, ecx
mov edi, edx
mov edx, eax
and edx, 3
mov eax, edx
mov edx, 0x19
mul edx
add edx, ecx
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov eax, esi
mov esi, dword [esp + 0x40]
shrd eax, edi, 2
mov dword [esp + 0x54], edx
mov edx, edi
mov edi, dword [esp + 0x44]
shr edx, 2
mov dword [esp + 0x58], eax
mov eax, esi
mov ecx, esi
mov dword [esp + 0x5c], edx
mov edx, edi
and ecx, 0xfffff
shrd eax, edx, 0x14
mov edx, edi
and eax, 0xfffff
shr edx, 8
add ecx, eax
mov eax, edx
mov edx, edi
and eax, 0xfffff
shr edx, 0x1c
add ecx, eax
mov eax, 0x51eb851f
add ecx, edx
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
sub ecx, eax
mov edx, ecx
xor ecx, ecx
sub esi, edx
mov dword [esp + 0x3c], ecx
sbb edi, ecx
imul eax, esi, 0x8f5c28f5
mov dword [esp + 0x38], edx
imul ecx, edi, 0xc28f5c29
add ecx, eax
mov eax, 0xc28f5c29
mul esi
mov edi, edx
mov esi, eax
mov edx, 0x19
add edi, ecx
mov ecx, eax
and ecx, 3
mov eax, ecx
mov ecx, dword [esp + 0x50]
mul edx
add eax, dword [esp + 0x38]
shrd esi, edi, 2
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x58]
shr edi, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
mov eax, dword [0x450480]
mov dword [esp + 4], 0x100
add eax, 0x15ce
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
jmp 0x40bd64
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x74]
mov dword [esp + 4], 0x100
lea edi, [esp + 0x194]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x50]
add eax, 0x15f2
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp], eax
call fcn.00409110
lea eax, [esp + 0x270]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x270]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
sub esp, 0x14
add dword [esp + 0x38], 1
mov eax, dword [esp + 0x38]
add dword [esp + 0x40], 0x10
cmp eax, 0xa
jne 0x40bdc0
jmp 0x40c052
lea ebx, [eax + 0x1a05]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
jmp 0x40be2e
movzx eax, word [0x45634c]
mov dword [esp + 0xc], esi
mov dword [esp + 4], 0x840
mov dword [esp + 0x10], eax
mov eax, dword [0x450484]
mov dword [esp], ebx
add eax, 0x1302
mov dword [esp + 8], eax
call fcn.004090b0
mov ebp, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [esp + 4], 0
mov dword [esp], ebx
call ebp
movzx eax, word [0x45634e]
sub esp, 8
mov dword [esp + 0x14], eax
movzx eax, word [0x45634c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [0x450484]
mov dword [esp + 4], 0x840
add eax, 0x1312
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.004090b0
mov dword [esp + 4], 0
mov dword [esp], ebx
call ebp
movzx eax, word [0x45634c]
movzx edx, word [0x45634e]
sub esp, 8
movzx ecx, word [0x456352]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov eax, dword [0x450484]
mov dword [esp + 0x1c], ecx
add eax, 0x1198
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], 0x840
mov dword [esp], ebx
call fcn.004090b0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
mov dword [esp], ebx
call edi
sub esp, 0x1c
mov dword [esp + 0xc8], eax
cmp eax, 0xffffffff
jne 0x409fb7
xor eax, eax
jmp 0x40c328
lea ebp, [esp + 0x1b0]
jmp 0x40a7da