Function at 0x403a18
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xe50]
sub esp, 0xed0
mov eax, dword [0x4161a0]
xor eax, ebp
mov dword [ebp + 0xe4c], eax
push ebx
push esi
push edi
mov esi, ecx
push esi
lea eax, [ebp + 0x420]
push 0x412a10
push eax
mov dword [ebp - 0x7c], esi
mov byte [0x416160], 0x52
mov byte [0x416148], 0x50
call fcn.00406b9d
add esp, 0xc
cmp byte [ebp + 0xe58], 0
push esi
je 0x403d30
call fcn.00402ae4
mov edi, 0x41255f
mov esi, 0x80000000
test al, al
jne 0x403b6e
mov ebx, 0x200
push ebx
push edi
lea eax, [ebp + 0xa20]
push eax
push edi
push dword [ebp - 0x7c]
push esi
call fcn.0040471f
push ebx
push edi
lea eax, [ebp + 0xc20]
push eax
mov ebx, 0x412a00
push ebx
push dword [ebp - 0x7c]
push esi
call fcn.0040471f
push 0x400
push edi
lea eax, [ebp + 0x20]
push eax
push 0x4129f4
lea eax, [ebp + 0x420]
push eax
push esi
call fcn.0040471f
push 0xa
push edi
lea eax, [ebp + 0xe20]
push eax
push 0x4129e8
lea eax, [ebp + 0x420]
push eax
push esi
call fcn.0040471f
push dword [ebp - 0x7c]
mov byte [ebp - 0x75], al
lea eax, [ebp - 0x30]
push 0x412648
push eax
call fcn.00406b9d
add esp, 0xc
push dword [ebp - 0x7c]
push esi
call fcn.004044fb
movzx eax, al
push eax
push 0x4129e0
lea eax, [ebp - 0x30]
push eax
call fcn.00404844
lea eax, [ebp + 0xa20]
push eax
push 0x4129d8
lea eax, [ebp - 0x30]
push eax
call fcn.0040482b
lea eax, [ebp + 0xc20]
push eax
push 0x4129d0
lea eax, [ebp - 0x30]
push eax
call fcn.0040482b
cmp byte [ebp + 0x20], 0
jne 0x403b68
cmp byte [ebp - 0x75], 0
je 0x403b68
push 0x4129cc
push 0x4129c0
lea eax, [ebp - 0x30]
push eax
call fcn.0040482b
jmp 0x403b73
lea eax, [ebp + 0x20]
push eax
jmp 0x403b58
mov ebx, 0x412a00
cmp byte [ebp + 0xe64], 0
mov eax, 0x41251c
jne 0x403b86
mov eax, 0x412558
push eax
push edi
push dword [ebp - 0x7c]
push esi
call fcn.0040465a
push ebx
push dword [ebp - 0x7c]
push esi
call fcn.0040436a
cmp byte [ebp + 0xe60], 0
je 0x403c01
call fcn.0040415c
neg eax
sbb eax, eax
and dword [ebp - 0x7c], 0
and eax, 0xffffffba
add eax, 0x64
mov dword [ebp - 0x80], eax
test eax, eax
jle 0x403c01
push dword [ebp - 0x7c]
lea eax, [ebp + 0xe2c]
push 0x4129b8
push eax
call fcn.00406b9d
add esp, 0xc
push 0x412558
push edi
lea eax, [ebp + 0xe2c]
push eax
push esi
call fcn.0040465a
push ebx
lea eax, [ebp + 0xe2c]
push eax
push esi
call fcn.0040436a
inc dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x80]
jl 0x403bbe
cmp byte [ebp + 0xe5c], 0
je 0x403f12
cmp byte [ebp + 0xe64], 0
jne 0x403c24
cmp byte [ebp + 0xe60], 0
je 0x403f12
lea eax, [ebp + 0x420]
push eax
push esi
call fcn.0040431d
lea eax, [ebp - 0x74]
push eax
mov dword [ebp - 0x74], 0x94
call dword [str.Ht_f]
cmp dword [ebp - 0x70], 4
ja 0x403c7e
cmp dword [ebp - 0x6c], 0xa
ja 0x403c7e
cmp byte [ebp + 0xe60], 0
lea eax, [ebp + 0x420]
je 0x403c75
push 0x14
push 0x416160
push 0x4129b0
push eax
push esi
call fcn.004046e0
jmp 0x403f12
push 0x16
push 0x416148
jmp 0x403c64
push 0x400
lea eax, [ebp + 0x820]
push eax
push 0
call dword [0x412040]
cmp byte [ebp + 0xe60], 0
mov eax, 0x4129a4
jne 0x403ca5
mov eax, 0x412998
push eax
lea eax, [ebp + 0x820]
push eax
call fcn.004041d9
push eax
call fcn.00406700
pop ecx
pop ecx
lea eax, [ebp + 0x820]
push eax
call dword [0x412144]
cmp eax, 0xffffffff
jne 0x403d12
lea eax, [ebp + 0x820]
push 0x412994
push eax
call fcn.0040778e
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x403d12
cmp byte [ebp + 0xe60], 0
push edi
je 0x403cfa
push 0x14
push 1
push 0x416160
jmp 0x403d03
push 0x16
push 1
push 0x416148
call fcn.00407648
add esp, 0x10
push edi
call fcn.0040746c
pop ecx
lea eax, [ebp + 0x820]
push eax
push 0x4129f4
lea eax, [ebp + 0x420]
push eax
push esi
call fcn.0040465a
jmp 0x403f12
lea eax, [ebp - 0x30]
push 0x412648
push eax
call fcn.00406b9d
add esp, 0xc
push esi
call fcn.00402ae4
test al, al
je 0x403f12
push 1
push 0x4129e0
lea eax, [ebp - 0x30]
push eax
call fcn.0040487d
test eax, eax
mov ebx, 0x200
push ebx
mov edi, 0x41255f
push edi
lea eax, [ebp + 0xc20]
push eax
push 0x4129d8
lea eax, [ebp - 0x30]
push eax
setne byte [ebp - 0x75]
call fcn.0040485d
lea eax, [ebp + 0xc20]
push 0x412558
push eax
call 0x411aa8
pop ecx
pop ecx
test eax, eax
je 0x403db4
lea eax, [ebp + 0xc20]
push 0x41251c
push eax
call 0x411aa8
pop ecx
pop ecx
test eax, eax
jne 0x403dbb
mov byte [ebp + 0xc20], 0
push ebx
push edi
lea eax, [ebp + 0xa20]
push eax
push 0x4129d0
lea eax, [ebp - 0x30]
push eax
call fcn.0040485d
cmp byte [ebp - 0x75], 0
je 0x403e71
lea eax, [ebp + 0xc20]
push eax
push edi
push esi
mov esi, 0x80000000
push esi
call fcn.0040465a
cmp byte [ebp + 0xa20], 0
je 0x403e10
lea eax, [ebp + 0xa20]
push eax
push 0x412a00
push dword [ebp - 0x7c]
push esi
call fcn.0040465a
jmp 0x403e1e
push 0x412a00
push dword [ebp - 0x7c]
push esi
call fcn.0040436a
push 0x400
push edi
lea eax, [ebp + 0x20]
push eax
push 0x4129c0
lea eax, [ebp - 0x30]
push eax
call fcn.0040485d
mov ebx, 0x4129f4
push ebx
lea eax, [ebp + 0x420]
push eax
push esi
call fcn.0040436a
cmp byte [ebp + 0x20], 0
je 0x403e97
cmp byte [ebp + 0x20], 0x2a
jne 0x403e5d
push edi
push 0x4129e8
jmp 0x403e62
lea eax, [ebp + 0x20]
push eax
push ebx
lea eax, [ebp + 0x420]
push eax
push esi
call fcn.0040465a
jmp 0x403e97
lea eax, [ebp + 0x420]
push eax
mov esi, 0x80000000
push esi
call fcn.0040431d
push edi
push edi
push dword [ebp - 0x7c]
push esi
call fcn.0040465a
push dword [ebp - 0x7c]
push esi
call fcn.0040431d
cmp byte [ebp + 0xe60], 0
je 0x403f12
xor ebx, ebx
push ebx
lea eax, [ebp + 0xe2c]
push 0x4129b8
push eax
call fcn.00406b9d
add esp, 0xc
cmp byte [ebp - 0x75], 0
je 0x403eff
cmp byte [ebp + 0xc20], 0
je 0x403eff
lea eax, [ebp + 0xc20]
push eax
push edi
lea eax, [ebp + 0xe2c]
push eax
push esi
call fcn.0040465a
cmp byte [ebp + 0xa20], 0
je 0x403f0c
lea eax, [ebp + 0xa20]
push eax
push 0x412a00
lea eax, [ebp + 0xe2c]
push eax
push esi
call fcn.0040465a
jmp 0x403f0c
lea eax, [ebp + 0xe2c]
push eax
push esi
call fcn.0040431d
inc ebx
cmp ebx, 0x64
jl 0x403ea2
mov ecx, dword [ebp + 0xe4c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00406b8e
add ebp, 0xe50
leave
ret 0x10