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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9ec
mov eax, dword [0x452480]
mov esi, dword [esp + 0xa00]
lea ebx, [esp + 0x1a0]
lea edx, [eax + 0x18c]
mov dword [esp + 0x58], edx
lea edx, [eax + 0x199]
mov dword [esp + 0x5c], edx
lea edx, [eax + 0x1a5]
mov dword [esp + 0x60], edx
lea edx, [eax + 0x1b2]
mov dword [esp + 0x64], edx
lea edx, [eax + 0x1bf]
mov dword [esp + 0x68], edx
lea edx, [eax + 0x1cc]
mov dword [esp + 0x6c], edx
lea edx, [eax + 0x1d9]
mov dword [esp + 0x70], edx
lea edx, [eax + 0x1e6]
mov dword [esp + 0x74], edx
lea edx, [eax + 0x1f9]
mov dword [esp + 0x78], edx
lea edx, [eax + 0x206]
mov dword [esp + 0x7c], edx
lea edx, [eax + 0x213]
mov dword [esp + 0x80], edx
lea edx, [eax + 0x224]
mov dword [esp + 0x84], edx
lea edx, [eax + 0x237]
mov dword [esp + 0x88], edx
lea edx, [eax + 0x24a]
mov dword [esp + 0x8c], edx
lea edx, [eax + 0x25c]
mov dword [esp], esi
mov dword [esp + 0x90], edx
lea edx, [eax + 0x26f]
mov dword [esp + 0x94], edx
lea edx, [eax + 0x287]
add eax, 0x2a0
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
call fcn.0040a4d0
movzx eax, word [0x4583ec]
mov dword [esp + 0xc], esi
movzx edx, word [0x4583ee]
movzx ecx, word [0x4583f2]
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, 0x790
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edx
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], 3
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 + 0x34], eax
cmp eax, 0xffffffff
je 0x40d5c0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0xffffffe0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
cmp eax, 0xffffffff
je 0x40d5a8
lea eax, [esp + 0xa0]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x3c], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 0x38], eax
mov eax, dword [0x452480]
lea ebx, [eax + 0x1778]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp], esi
mov dword [esp + 8], eax
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x184f]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call ebp
movzx ebx, word [0x4583f4]
mov eax, dword [0x452480]
mov edi, dword [0x4583e8]
sub esp, 0x14
movzx ecx, word [0x4583f8]
cmp bx, 9
movzx esi, word [0x4583f6]
lea edx, [edi + 1]
ja 0x40d9d0
add eax, 0x1ae2
mov edi, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], 0x100
call fcn.00409740
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x48], edi
mov dword [esp + 4], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, edi
mov dword [esp], ebp
mov dword [esp + 0x10], 0
call eax
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, edi
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov dword [esp + 0x10], 0
call eax
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1882]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x3c], esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, edi
mov dword [esp + 4], ebx
mov dword [esp + 0x34], ebp
mov dword [esp], ebp
mov dword [esp + 0x38], edi
mov dword [esp + 0x10], 0
call eax
mov ecx, dword [0x458488]
mov esi, dword [0x458488]
mov edi, dword [0x45848c]
mov edx, dword [0x45848c]
sub esp, 0x14
and ecx, 0xfffff
movzx ebp, word [0x458466]
mov dword [esp + 4], 0x100
mov eax, ecx
mov ecx, esi
shrd ecx, edi, 0x14
mov ebx, ebp
and ecx, 0xfffff
add eax, ecx
mov ecx, edx
shr edx, 0x1c
shr ecx, 8
and ecx, 0xfffff
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 + 0x44], edx
sub ecx, eax
mov eax, 0xc28f5c29
sub esi, ecx
mov dword [esp + 0x40], ecx
sbb edi, edx
imul edx, esi, 0x8f5c28f5
imul ecx, edi, 0xc28f5c29
add ecx, edx
mul esi
mov edi, edx
mov esi, eax
mov edx, 0x19
add edi, ecx
mov ecx, eax
and ecx, 3
mov eax, ecx
xor ecx, ecx
mul edx
add edx, ecx
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
shr bx, 2
mov dword [esp + 0x40], eax
movzx eax, bx
shrd esi, edi, 2
mov ebx, dword [esp + 0x40]
imul eax, eax, 0x147b
mov dword [esp + 0x44], edx
mov edx, ebp
shr edi, 2
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x14], esi
shr eax, 0x11
mov dword [esp], edi
lea ecx, [eax + eax*4]
movzx eax, ax
mov dword [esp + 0x1c], ebx
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x20], eax
mov eax, dword [0x458490]
shl ecx, 2
sub edx, ecx
mov ecx, dword [0x452480]
mov dword [esp + 0xc], eax
movzx edx, dx
mov dword [esp + 0x24], edx
mov edx, dword [0x458494]
lea eax, [ecx + 0x1aa0]
mov dword [esp + 8], eax
mov dword [esp + 0x10], edx
call fcn.00409740
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], ebp
mov ebp, 0x45862e
mov dword [esp + 0xc], esi
mov dword [esp + 4], edi
call eax
sub esp, 0x14
lea esi, [esi]
mov eax, dword [0x452480]
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0
call eax
mov ecx, dword [0x452480]
sub esp, 0x14
lea ebx, [ecx + 0x1882]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x3c], edi
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ebx
mov dword [esp + 0x34], esi
mov dword [esp], esi
mov dword [esp + 0x10], 0
call eax
mov ecx, dword [ebp + 0xa]
mov ebx, dword [ebp + 0xe]
mov edx, dword [ebp + 0xe]
sub esp, 0x14
and ecx, 0xfffff
mov eax, ecx
mov ecx, dword [ebp + 0xa]
mov esi, ecx
shrd esi, ebx, 0x14
and esi, 0xfffff
add eax, esi
mov esi, edx
shr edx, 0x1c
shr esi, 8
and esi, 0xfffff
add esi, eax
mov eax, 0x51eb851f
add esi, edx
mul esi
shr edx, 3
lea eax, [edx + edx*4]
xor edx, edx
lea eax, [eax + eax*4]
mov dword [esp + 0x44], edx
sub esi, eax
mov eax, 0xc28f5c29
sub ecx, esi
mov dword [esp + 0x40], esi
sbb ebx, edx
imul edx, ecx, 0x8f5c28f5
imul esi, ebx, 0xc28f5c29
add esi, edx
mul ecx
mov ebx, edx
mov edx, eax
mov ecx, eax
and edx, 3
add ebx, esi
xor esi, esi
mov eax, edx
mov edx, 0x19
mul edx
add edx, esi
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
shrd ecx, ebx, 2
mov dword [esp + 0x44], edx
movzx edx, word [ebp]
shr ebx, 2
add ebp, 0x28
movzx esi, word [ebp - 0x28]
mov dword [esp + 0x40], eax
shr dx, 2
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], ecx
movzx edx, dx
mov dword [esp + 0x18], ebx
mov ecx, dword [0x452480]
imul edx, edx, 0x147b
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x48]
shr edx, 0x11
lea edi, [edx + edx*4]
movzx edx, dx
lea edi, [edi + edi*4]
mov dword [esp + 0x20], edx
shl edi, 2
sub esi, edi
movzx esi, si
mov dword [esp + 0x24], esi
mov eax, dword [ebp - 0x16]
mov edx, dword [ebp - 0x12]
mov dword [esp + 4], 0x100
mov dword [esp + 0xc], eax
lea eax, [ecx + 0x1aa0]
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00409740
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
call eax
mov eax, 0x458796
sub esp, 0x14
cmp eax, ebp
jne 0x40d0e0
mov eax, dword [0x452480]
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp], esi
mov dword [esp + 8], eax
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1951]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x3c], edi
mov dword [esp + 0xc], edi
mov edi, 0x91a2b3c5
mov dword [esp + 4], ebx
mov dword [esp + 0x34], esi
mov dword [esp], esi
mov esi, 0x88888889
mov dword [esp + 0x38], ebp
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
call ebp
mov ecx, dword [0x45847c]
mov ebp, dword [0x458478]
sub esp, 0x14
mov eax, ecx
mov dword [esp + 4], 0x100
mul esi
mov eax, ecx
shr edx, 5
imul edx, edx, 0x3c
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, ecx
mul edi
mov ebx, edx
shr ebx, 0xb
imul eax, ebx, 0xe10
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp], ebx
sub ecx, eax
mov eax, ecx
mul esi
mov eax, ebp
shr edx, 5
mov dword [esp + 0x28], edx
mul esi
mov eax, ebp
shr edx, 5
imul edx, edx, 0x3c
sub eax, edx
mov dword [esp + 0x20], eax
mov eax, ebp
mul edi
mov ecx, edx
shr ecx, 0xb
imul eax, ecx, 0xe10
mov dword [esp + 0x18], ecx
sub ebp, eax
mov eax, ebp
mul esi
mov eax, esi
shr edx, 5
mov dword [esp + 0x1c], edx
mul dword [0x458474]
mov eax, dword [0x458474]
shr edx, 5
imul edx, edx, 0x3c
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, edi
mul dword [0x458474]
mov ecx, edx
mov edx, dword [0x458474]
shr ecx, 0xb
imul eax, ecx, 0xe10
mov dword [esp + 0xc], ecx
sub edx, eax
mov eax, edx
mul esi
mov eax, dword [0x452480]
add eax, 0x1b21
shr edx, 5
mov dword [esp + 8], eax
mov dword [esp + 0x10], edx
call fcn.00409740
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp], esi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x177d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp], esi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1973]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
call ebp
sub esp, 0x14
cmp dword [esp + 0xa04], 0xffffffff
je 0x40d9e0
cmp dword [esp + 0xa04], 0xff
mov eax, dword [0x452480]
jbe 0x40da80
movzx ebx, byte [esp + 0xa04]
add eax, 0x1b55
mov dword [esp + 0xa04], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], 0x100
mov dword [esp], eax
call fcn.00409740
mov edi, dword [esp + 0x48]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov dword [esp + 4], edi
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
sub esp, 0x14
cmp dword [esp + 0xa04], 0x11
ja 0x40da40
mov eax, dword [esp + 0xa04]
mov ebx, dword [esp + eax*4 + 0x58]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call ebp
sub esp, 0x14
mov eax, dword [0x452480]
lea ebx, [eax + 0x1a69]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x10], 0
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, 0x9ec
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
lea esi, [esi]
nop
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, 0x790
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 edi, eax
mov dword [esp + 0x34], eax
xor eax, eax
cmp edi, 0xffffffff
je 0x40d596
movzx eax, word [0x4583f2]
lea ebp, [esp + 0xa0]
mov dword [esp + 4], 0x100
lea esi, [esp + 0x54]
mov dword [esp], ebp
mov dword [esp + 0x14], eax
movzx eax, word [0x4583ee]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x10], eax
movzx eax, word [0x4583ec]
mov dword [esp + 0xc], eax
mov eax, dword [0x452480]
add eax, 0x14cf
mov dword [esp + 8], eax
call fcn.00409740
mov eax, dword [0x452480]
lea ebx, [eax + 0x14e6]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x1544]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov ebx, ebp
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
sub esp, 0x14
mov ebp, dword [esp + 0x48]
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebp
mov ebp, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebx
mov ebx, dword [0x452480]
sub esp, 0x14
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0xf2]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x125]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x154c]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x15fa]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov ebx, ebp
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
sub esp, 0x14
mov ebp, dword [esp + 0x48]
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebp
mov ebp, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebx
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x2ad]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x175]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x16c1]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0xaff]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp], edi
call ebp
mov eax, dword [0x452480]
sub esp, 0x14
lea ebx, [eax + 0x174d]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call ebp
sub esp, 0x14
jmp 0x40cdef
add eax, 0x1b04
jmp 0x40ceba
mov ecx, dword [0x45ae40]
test ecx, ecx
je 0x40da98
mov dword [esp + 0x54], 0
mov edi, dword [esp + 0x4c]
xor ebx, ebx
xor eax, eax
mov esi, dword [esp + 0x48]
jmp 0x40da1d
add eax, 1
mov ebx, 1
cmp eax, 0x100
je 0x40dab8
mov edi, eax
movzx edx, word [ecx + eax*2]
mov byte [esi + eax], dl
test dl, dl
jne 0x40da08
test bl, bl
je 0x40da30
mov dword [esp + 0x54], edi
mov byte [esp + 0x19f], 0
mov ebx, dword [esp + 0x48]
jmp 0x40da4b
mov eax, dword [0x452480]
lea ebx, [eax + 0x148c]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], 0
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], ecx
call eax
sub esp, 0x14
jmp 0x40d54a
mov ebx, dword [esp + 0xa04]
add eax, 0x1b58
mov dword [esp + 0xc], ebx
jmp 0x40d4c1
movzx eax, word [0x44abc6]
mov byte [esp + 0xa2], 0
mov word [esp + 0xa0], ax
jmp 0x40da38
mov dword [esp + 0x54], 0x100
jmp 0x40da30