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

Disassembly:
push ebp
mov eax, 0x1abc
push edi
push esi
push ebx
call fcn.0042d140
sub esp, eax
movzx eax, word [0x4583ec]
movzx edx, word [0x4583ee]
mov esi, dword [esp + 0x1ad0]
movzx ecx, word [0x4583f2]
lea ebx, [esp + 0x340]
mov dword [esp + 4], 0x840
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov eax, dword [0x452484]
mov dword [esp + 0x20], ecx
add eax, 0x740
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.004096e0
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 + 0xb8], eax
cmp eax, 0xffffffff
je 0x40cae4
mov eax, dword [0x452480]
lea edi, [esp + 0x174]
lea ebx, [eax + 0x14e6]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov esi, dword [esp + 0xb8]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1539]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 + 0xb80]
mov dword [esp + 0xc], 0xf30
mov dword [esp], eax
mov eax, dword [0x42e308]
mov dword [esp + 8], 0x459380
mov dword [esp + 4], 0xf30
mov dword [esp + 0x168], eax
call eax
mov dword [esp + 0x40], 0
lea edx, [esp + 0x1ab0]
lea eax, [esp + 0xb80]
mov dword [esp + 0x44], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 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 + 4]
adc edi, ebx
add dword [esp + 0x38], esi
mov esi, dword [eax + 0xc]
adc dword [esp + 0x3c], edi
xor ebx, ebx
xor edi, edi
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
adc edi, ebx
add dword [esp + 0x40], esi
adc dword [esp + 0x44], edi
add eax, 0x1b0
cmp edx, eax
jne 0x40a668
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
xor esi, esi
movzx ebx, word [str._r_n__]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x194], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x198], eax
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x19c], edx
jmp 0x40ab8d
cmp dword [esp + 0x240], 2
jne 0x40ac3b
add esi, 1
cmp esi, 0xf30
je 0x40ac3b
imul eax, esi, 0xcccccccd
ror eax, 3
cmp eax, 0x6666666
ja 0x40abe1
lea eax, [esp + 0x240]
mov word [esp + 0x1b0], bx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
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 0x40ac3b
cmp dword [esp + 0x240], 2
jne 0x40ac3b
movzx eax, byte [esp + esi + 0xb80]
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 + 0x1b1], al
lea eax, [esp + 0x240]
add edx, 0x41
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
mov byte [esp + 0x1b0], dl
mov dword [esp + 4], eax
call ebp
sub esp, 0x14
test eax, eax
jne 0x40ab70
lea eax, [esp + 0x240]
mov word [esp + 0x1b0], bx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
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 0x40cc09
cmp dword [esp + 0x240], 2
jne 0x40cc09
lea ebp, [esp + 0x190]
xor esi, esi
mov edi, dword [esp + 0xb8]
mov eax, ebp
mov ebp, esi
mov esi, eax
jmp 0x40acc2
cmp dword [esp + 0x240], 2
jne 0x40ad18
add ebp, 1
cmp ebp, 0x10
je 0x40ad18
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 + 0x1b1], al
lea eax, [esp + 0x240]
add ecx, 0x41
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov byte [esp + 0x1b0], cl
call eax
sub esp, 0x14
test eax, eax
jne 0x40acb0
mov ebp, esi
lea eax, [esp + 0x240]
mov word [esp + 0x1b0], bx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
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 0x40ade7
cmp dword [esp + 0x240], 2
jne 0x40ade7
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0x4c]
xor ebx, ebx
jmp 0x40ad92
cmp dword [esp + 0x240], 2
jne 0x40ade7
add ebx, 1
cmp ebx, 4
je 0x40ade7
movzx eax, byte [ebx + 0x4583e8]
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 + 0x1b1], al
lea eax, [esp + 0x240]
add edx, 0x41
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
mov byte [esp + 0x1b0], dl
mov dword [esp + 4], eax
call edi
sub esp, 0x14
test eax, eax
jne 0x40ad80
mov eax, dword [0x452480]
lea edi, [esp + 0x174]
lea ebx, [eax + 0x153e]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xb8]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1544]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x4583f2]
sub esp, 0x14
mov dword [esp + 0x14], eax
movzx eax, word [0x4583ee]
mov dword [esp + 4], 0x100
mov dword [esp + 0x10], eax
movzx eax, word [0x4583ec]
mov dword [esp + 0xc], eax
mov eax, dword [0x452480]
add eax, 0x146c
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
lea eax, [esp + 0x240]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call esi
mov ebx, dword [0x452480]
sub esp, 0x14
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0xae]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x125]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x154c]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1577]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 + 0x240]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call esi
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x2ad]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x175]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x16c1]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x2fa]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x174d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 + 0xd30]
mov dword [esp + 0x128], 0
mov dword [esp + 0xbc], eax
mov dword [esp + 0x12c], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x16c], ebp
lea esi, [esi]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc0], 0
sub eax, 0x1b0
mov dword [esp + 0x164], eax
mov ebp, eax
mov dword [esp + 0xc4], 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 + 0x130], ebx
mov dword [esp + 0x58], eax
adc dword [esp + 0x134], esi
mov esi, dword [ebp + 0xc]
add dword [esp + 0x138], eax
mov eax, dword [ebp + 8]
adc dword [esp + 0x13c], edx
xor edi, edi
mov dword [esp + 0x5c], edx
xor edx, edx
mov dword [esp + 0x50], ebx
add dword [esp + 0x148], eax
mov dword [esp + 0x60], eax
adc dword [esp + 0x14c], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
add dword [esp + 0x150], esi
mov ecx, dword [ebp + 0x10]
adc dword [esp + 0x154], edi
xor ebx, ebx
mov esi, dword [ebp + 0x14]
xor edi, edi
mov dword [esp + 0x74], ebx
add dword [esp + 0x158], ecx
adc dword [esp + 0x15c], ebx
mov ebx, dword [ebp + 0x18]
add dword [esp + 0x100], esi
mov edx, ebx
adc dword [esp + 0x104], 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 + 0xd0], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
adc dword [esp + 0xd4], ecx
mov esi, dword [ebp + 0x24]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
add dword [esp + 0x140], ecx
mov ecx, dword [ebp + 0x20]
adc dword [esp + 0x144], ebx
xor ebx, ebx
mov edx, dword [ebp + 0x2c]
xor edi, edi
mov dword [esp + 0x8c], ebx
add dword [esp + 0x128], ecx
adc dword [esp + 0x12c], ebx
mov ebx, dword [ebp + 0x28]
add dword [esp + 0x110], esi
mov dword [esp + 0x88], ecx
adc dword [esp + 0x114], 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
mov eax, dword [ebp + 0x3c]
add dword [esp + 0x108], ebx
adc dword [esp + 0x10c], esi
mov esi, dword [ebp + 0x30]
add dword [esp + 0xe8], edx
mov edx, dword [ebp + 0x34]
adc dword [esp + 0xec], ecx
xor ecx, ecx
xor edi, edi
mov dword [esp + 0xa0], edx
add dword [esp + 0x120], esi
mov dword [esp + 0xa4], ecx
adc dword [esp + 0x124], edi
add dword [esp + 0xf8], edx
adc dword [esp + 0xfc], ecx
mov ecx, dword [ebp + 0x38]
xor ebx, ebx
xor edx, edx
add dword [esp + 0xe0], ecx
mov dword [esp + 0xa8], eax
adc dword [esp + 0xe4], ebx
add dword [esp + 0x118], eax
mov eax, dword [ebp + 0x40]
adc dword [esp + 0x11c], edx
mov dword [esp + 0xac], edx
xor edx, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb4], edx
add eax, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
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, esi
mov esi, dword [esp + 0xb0]
adc edx, edi
mov edi, dword [esp + 0xb4]
add eax, ecx
mov ecx, dword [ebp + 0x44]
adc edx, ebx
add eax, esi
adc edx, edi
add dword [esp + 0xc0], eax
mov eax, dword [esp + 0x58]
adc dword [esp + 0xc4], 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 + 0xa0]
adc edx, dword [esp + 0xa4]
add eax, dword [esp + 0xa8]
adc edx, dword [esp + 0xac]
add eax, ecx
adc edx, ebx
add dword [esp + 0xc8], eax
adc dword [esp + 0xcc], edx
add dword [esp + 0xf0], esi
adc dword [esp + 0xf4], edi
add dword [esp + 0xd8], ecx
adc dword [esp + 0xdc], ebx
add ebp, 0x48
cmp dword [esp + 0xbc], ebp
jne 0x40b328
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
lea edi, [esp + 0x174]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x1b4], edx
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x1bc], edx
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x1c4], edx
mov edx, dword [esp + 0x154]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x1cc], edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1d4], edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x1dc], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x1e4], edx
mov edx, dword [esp + 0x144]
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], edx
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1f4], edx
mov edx, dword [esp + 0x114]
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x1fc], edx
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x204], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x20c], edx
mov edx, dword [esp + 0x124]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x214], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x224], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], edx
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1a4], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x1ac], edx
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x234], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x238], eax
mov eax, dword [0x452480]
mov dword [esp + 0x23c], edx
lea ebx, [eax + 0x1778]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xb8]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x17c9]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 + 0x160], 1
mov eax, dword [esp + 0x160]
mov dword [esp + 4], 0x100
mov dword [esp + 0xc], eax
mov eax, dword [0x452480]
add eax, 0x1a96
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
lea eax, [esp + 0x240]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 4], eax
call esi
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1882]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 + 0x1ac]
mov ebp, dword [esp + 0x1a8]
mov edi, eax
or edi, ebp
je 0x40c7b3
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
mov dword [esp + 8], ebp
mov ebx, 0x19
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.0042d2b0
mov dword [esp + 0xc], ebp
mov esi, eax
mov ecx, eax
shrd eax, edx, 0x14
mov edi, edx
and eax, 0xfffff
shr edx, 8
and ecx, 0xfffff
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]
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 edi, edx
mov edx, eax
mov esi, eax
and edx, 3
add edi, ecx
xor ecx, ecx
mov eax, edx
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 [0x452480]
mov dword [esp + 4], 0x100
add eax, 0x1aa0
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
lea eax, [esp + 0x240]
lea edi, [esp + 0x174]
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 + 0x240]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
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 + 0x164]
jmp 0x40bd1b
mov dword [esp + 8], ebx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 0xc], edx
call fcn.0042d2b0
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, 0x1aa0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov dword [esp], eax
call fcn.00409740
lea eax, [esp + 0x240]
lea edi, [esp + 0x174]
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 + 0x240]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
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, 9
je 0x40bf98
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x4c]
xor ebx, ebx
xor edx, edx
mov esi, dword [ebp + 0x124]
add eax, ecx
mov ecx, dword [ebp + 0x94]
adc edx, ebx
xor ebx, ebx
add ecx, eax
mov eax, dword [ebp + 0xdc]
adc ebx, edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp + 0x48]
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 + 0x90]
adc ebx, edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp + 0xd8]
adc edx, ebx
xor ebx, ebx
add ecx, eax
mov eax, dword [ebp + 0x120]
adc ebx, edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp + 0x168]
adc edx, ebx
xor ebx, ebx
add eax, ecx
mov dword [esp + 0x1a0], eax
mov eax, dword [ebp + 0x16c]
adc edx, ebx
mov dword [esp + 0x1a4], edx
xor edx, edx
add eax, esi
mov dword [esp + 0x1a8], eax
mov eax, dword [0x452480]
adc edx, edi
lea edi, [esp + 0x174]
mov dword [esp + 0x1ac], edx
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
call eax
mov eax, dword [0x452480]
sub esp, 0x14
cmp dword [esp + 0x38], 8
je 0x40bf78
lea ebx, [eax + 0x1882]
lea edi, [esp + 0x174]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb8]
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 + 0x1a0]
mov edi, dword [esp + 0x1a4]
mov ebx, dword [esp + 0x1a8]
mov edx, dword [esp + 0x1ac]
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 [0x452480]
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 0x40bbd8
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, 0x1ac4
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
jmp 0x40bcc2
lea ebx, [eax + 0x18ab]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
jmp 0x40be21
add dword [esp + 0xbc], 0x1b0
cmp dword [esp + 0x160], 9
jne 0x40b2e0
mov eax, dword [0x452480]
lea edi, [esp + 0x174]
mov ebp, dword [esp + 0x16c]
lea ebx, [eax + 0x175]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xb8]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1803]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x147e]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1882]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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 + 0x19c]
mov ebx, dword [esp + 0x198]
mov edi, eax
or edi, ebx
jne 0x40c87b
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x194]
mov dword [esp + 4], 0x100
mov ecx, dword [esp + 0x190]
mov ebx, dword [esp + 0x194]
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 [0x452480]
shrd esi, edi, 2
shr edi, 2
mov dword [esp + 0xc], esi
add eax, 0x1ac4
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
lea eax, [esp + 0x240]
lea edi, [esp + 0x174]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
sub esp, 0x14
lea eax, [esp + 0x1b0]
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], ebp
nop
mov eax, dword [0x452480]
lea edi, [esp + 0x174]
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
call eax
mov eax, dword [0x452480]
sub esp, 0x14
cmp dword [esp + 0x38], 6
jg 0x40cac9
lea ebx, [eax + 0x1882]
lea edi, [esp + 0x174]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb8]
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 edx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, esi
mov ecx, esi
mov dword [esp + 0x58], edx
shrd eax, edi, 0x14
mov edx, edi
and ecx, 0xfffff
and eax, 0xfffff
shr edx, 8
mov dword [esp + 0x60], ebx
xor ebx, ebx
add ecx, eax
mov eax, edx
mov edx, edi
mov dword [esp + 0x54], ebx
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
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
shr ebx, 2
mov ebp, dword [0x452480]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x50], ebp
mov ebp, ebx
mov dword [esp + 0x68], eax
or ebp, edx
mov dword [esp + 0x70], ecx
je 0x40ca2d
mov dword [esp + 0xc], ebx
xor ebp, ebp
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call fcn.0042d2b0
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 + 0x58]
mov dword [esp + 0xc], edx
add eax, edi
mov edi, ecx
mov ecx, dword [esp + 0x70]
add ebp, 0x1aa0
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 + 0x60]
mov dword [esp + 0x1c], edi
lea edi, [esp + 0x240]
mov dword [esp + 0x14], ecx
mov dword [esp], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 8], ebp
call fcn.00409740
mov dword [esp], edi
lea edi, [esp + 0x174]
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
lea edi, [esp + 0x240]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xb8]
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, 9
jne 0x40c240
mov eax, dword [0x452480]
lea edi, [esp + 0x174]
mov ebp, dword [esp + 0x78]
lea ebx, [eax + 0x19b6]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xb8]
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 + 0x180]
mov esi, dword [esp + 0x168]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x4583ec
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 + 0x180], 1
call fcn.0040a2a0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x4583ec
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call esi
movzx edx, word [esp + 0x182]
lea eax, [edx - 1]
cmp dx, 1
ja 0x40c59b
sub word [esp + 0x180], 1
mov eax, 0xc
mov word [esp + 0x182], ax
mov eax, dword [esp + 0xb8]
lea esi, [esp + 0x178]
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040a2a0
mov dword [esp + 4], esi
mov dword [esp], 0x4583ec
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
sub esp, 8
mov edi, dword [esp + 0x168]
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 + 0x190], 0xd5964000
mov dword [esp + 0x168], edi
adc dword [esp + 0x194], 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 + 0xb8]
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.0040a2a0
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x168]
add dword [esp + 0x190], 0x54d38000
mov dword [esp + 0xc], 8
adc dword [esp + 0x194], 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 + 0xb8]
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040a2a0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x4583ec
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call ebp
movzx edx, word [esp + 0x182]
lea eax, [edx + 1]
cmp dx, 0xb
jbe 0x40c6f9
add word [esp + 0x180], 1
mov eax, 1
mov edi, dword [esp + 0xb8]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], edi
mov word [esp + 0x182], ax
call fcn.0040a2a0
mov dword [esp], ebx
mov eax, dword [esp + 0x168]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x4583ec
mov dword [esp + 4], 0x10
call eax
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], edi
add word [esp + 0x180], 1
call fcn.0040a2a0
mov eax, dword [0x452480]
lea ebx, [eax + 0x1a4b]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x174]
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, 0x1abc
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
mov dword [esp + 4], 0x100
mov ecx, dword [esp + 0x1a0]
mov ebx, dword [esp + 0x1a4]
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 [0x452480]
shrd esi, edi, 2
shr edi, 2
mov dword [esp + 0xc], esi
add eax, 0x1ac4
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
jmp 0x40bb7e
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x194]
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.0042d2b0
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 [0x452480]
mov dword [esp + 4], 0x100
add eax, 0x1aa0
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
jmp 0x40c1e4
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x74]
mov dword [esp + 4], 0x100
lea edi, [esp + 0x174]
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, 0x1ac4
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00409740
lea eax, [esp + 0x240]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
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, 9
jne 0x40c240
jmp 0x40c4d2
lea ebx, [eax + 0x18f5]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
jmp 0x40c2ae
movzx eax, word [0x4583ec]
mov dword [esp + 0xc], esi
mov dword [esp + 4], 0x840
mov dword [esp + 0x10], eax
mov eax, dword [0x452484]
mov dword [esp], ebx
add eax, 0x8ac
mov dword [esp + 8], eax
call fcn.004096e0
mov ebp, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [esp + 4], 0
mov dword [esp], ebx
call ebp
movzx eax, word [0x4583ee]
sub esp, 8
mov dword [esp + 0x14], eax
movzx eax, word [0x4583ec]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [0x452484]
mov dword [esp + 4], 0x840
add eax, 0x8bc
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.004096e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call ebp
movzx eax, word [0x4583ec]
movzx edx, word [0x4583ee]
sub esp, 8
movzx ecx, word [0x4583f2]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov eax, dword [0x452484]
mov dword [esp + 0x20], ecx
add eax, 0x740
mov dword [esp + 0x1c], 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.004096e0
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 + 0xb8], eax
cmp eax, 0xffffffff
jne 0x40a587
xor eax, eax
jmp 0x40c7a8
lea ebp, [esp + 0x190]
jmp 0x40ad1a