Function at 0x403a1e
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x68]
mov eax, 0x1d04
call fcn.00407920
mov eax, dword [0x4171b0]
xor eax, ebp
mov dword [ebp + 0x64], eax
push ebx
push esi
push edi
mov esi, ecx
push esi
push 0x412eb8
lea eax, [ebp - 0x1490]
push 0x400
push eax
mov dword [ebp - 0x1c98], esi
mov byte [0x41716c], 0x52
mov byte [0x417154], 0x50
call fcn.00406e59
add esp, 0x10
cmp byte [ebp + 0x70], 0
push esi
je 0x403d04
call fcn.00402b95
mov edi, 0x412610
mov esi, 0x80000000
test al, al
jne 0x403b95
mov ebx, 0x200
push ebx
push edi
lea eax, [ebp - 0x890]
push eax
push edi
push dword [ebp - 0x1c98]
push esi
call fcn.00404aa7
push ebx
push edi
lea eax, [ebp - 0x490]
push eax
mov ebx, 0x412e9c
push ebx
push dword [ebp - 0x1c98]
push esi
call fcn.00404aa7
push 0x400
push edi
lea eax, [ebp - 0x1c90]
push eax
push 0x412e88
lea eax, [ebp - 0x1490]
push eax
push esi
call fcn.00404aa7
push 0xa
push edi
lea eax, [ebp - 0x90]
push eax
push 0x412e74
lea eax, [ebp - 0x1490]
push eax
push esi
call fcn.00404aa7
push dword [ebp - 0x1c98]
mov byte [ebp - 0x1c91], al
push 0x41276c
lea eax, [ebp - 0x7c]
push 0x50
push eax
call fcn.00406e59
add esp, 0x10
push dword [ebp - 0x1c98]
push esi
call fcn.004048c4
movzx eax, al
push eax
push 0x412e68
lea eax, [ebp - 0x7c]
push eax
call fcn.00404c04
lea eax, [ebp - 0x890]
push eax
push 0x412e5c
lea eax, [ebp - 0x7c]
push eax
call fcn.00404beb
lea eax, [ebp - 0x490]
push eax
push 0x412e4c
lea eax, [ebp - 0x7c]
push eax
call fcn.00404beb
cmp word [ebp - 0x1c90], 0
jne 0x403b8c
cmp byte [ebp - 0x1c91], 0
je 0x403b8c
push 0x412e48
push 0x412e34
lea eax, [ebp - 0x7c]
push eax
call fcn.00404beb
jmp 0x403b9a
lea eax, [ebp - 0x1c90]
push eax
jmp 0x403b7c
mov ebx, 0x412e9c
cmp byte [ebp + 0x7c], 0
mov eax, 0x4125e8
jne 0x403baa
mov eax, 0x412600
push eax
push edi
push dword [ebp - 0x1c98]
push esi
call fcn.00404a1e
push ebx
push dword [ebp - 0x1c98]
push esi
call fcn.0040480d
cmp byte [ebp + 0x78], 0
je 0x403c33
call fcn.004043f6
neg eax
sbb eax, eax
and dword [ebp - 0x1c98], 0
and eax, 0xffffffba
add eax, 0x64
mov dword [ebp - 0x1c9c], eax
test eax, eax
jle 0x403c33
push dword [ebp - 0x1c98]
lea eax, [ebp + 0x24]
push 0x412e24
push 0x20
push eax
call fcn.00406e59
add esp, 0x10
push 0x412600
push edi
lea eax, [ebp + 0x24]
push eax
push esi
call fcn.00404a1e
push ebx
lea eax, [ebp + 0x24]
push eax
push esi
call fcn.0040480d
inc dword [ebp - 0x1c98]
mov eax, dword [ebp - 0x1c98]
cmp eax, dword [ebp - 0x1c9c]
jl 0x403beb
cmp byte [ebp + 0x74], 0
je 0x403eff
cmp byte [ebp + 0x7c], 0
jne 0x403c4d
cmp byte [ebp + 0x78], 0
je 0x403eff
lea eax, [ebp - 0x1490]
push eax
push esi
call fcn.004047c0
push 0x400
lea eax, [ebp - 0xc90]
push eax
push 0
call dword [str._vCC__]
cmp byte [ebp + 0x78], 0
mov eax, 0x412e0c
jne 0x403c7e
mov eax, 0x412df4
push eax
lea eax, [ebp - 0xc90]
push eax
call fcn.004044e3
push eax
call fcn.00407226
pop ecx
pop ecx
lea eax, [ebp - 0xc90]
push eax
call fcn.004024fe
test al, al
jne 0x403ce6
push 0
push 0x412df0
lea eax, [ebp - 0xc90]
push eax
call fcn.0040269b
mov edi, eax
test edi, edi
je 0x403ce6
cmp byte [ebp + 0x78], 0
push edi
je 0x403cce
push 0x14
push 1
push 0x41716c
jmp 0x403cd7
push 0x16
push 1
push 0x417154
call fcn.00408601
add esp, 0x10
push edi
call fcn.00408423
pop ecx
lea eax, [ebp - 0xc90]
push eax
push 0x412e88
lea eax, [ebp - 0x1490]
push eax
push esi
call fcn.00404a1e
jmp 0x403eff
push 0x41276c
lea eax, [ebp - 0x7c]
push 0x50
push eax
call fcn.00406e59
add esp, 0x10
push esi
call fcn.00402b95
test al, al
je 0x403eff
push 1
push 0x412e68
lea eax, [ebp - 0x7c]
push eax
call fcn.00404c3d
test eax, eax
mov ebx, 0x200
push ebx
mov edi, 0x412610
push edi
lea eax, [ebp - 0x490]
push eax
push 0x412e5c
lea eax, [ebp - 0x7c]
push eax
setne byte [ebp - 0x1c91]
call fcn.00404c1d
push 0x412600
lea eax, [ebp - 0x490]
push eax
call fcn.00405b2e
test eax, eax
je 0x403d89
push 0x4125e8
lea eax, [ebp - 0x490]
push eax
call fcn.00405b2e
test eax, eax
jne 0x403d92
xor eax, eax
mov word [ebp - 0x490], ax
push ebx
push edi
lea eax, [ebp - 0x890]
push eax
push 0x412e4c
lea eax, [ebp - 0x7c]
push eax
call fcn.00404c1d
cmp byte [ebp - 0x1c91], 0
je 0x403e60
lea eax, [ebp - 0x490]
push eax
push edi
push esi
mov esi, 0x80000000
push esi
call fcn.00404a1e
cmp word [ebp - 0x890], 0
je 0x403dee
lea eax, [ebp - 0x890]
push eax
push 0x412e9c
push dword [ebp - 0x1c98]
push esi
call fcn.00404a1e
jmp 0x403dff
push 0x412e9c
push dword [ebp - 0x1c98]
push esi
call fcn.0040480d
push 0x400
push edi
lea eax, [ebp - 0x1c90]
push eax
push 0x412e34
lea eax, [ebp - 0x7c]
push eax
call fcn.00404c1d
mov ebx, 0x412e88
push ebx
lea eax, [ebp - 0x1490]
push eax
push esi
call fcn.0040480d
cmp word [ebp - 0x1c90], 0
je 0x403e8c
cmp word [ebp - 0x1c90], 0x2a
jne 0x403e49
push edi
push 0x412e74
jmp 0x403e51
lea eax, [ebp - 0x1c90]
push eax
push ebx
lea eax, [ebp - 0x1490]
push eax
push esi
call fcn.00404a1e
jmp 0x403e8c
lea eax, [ebp - 0x1490]
push eax
mov esi, 0x80000000
push esi
call fcn.004047c0
push edi
push edi
push dword [ebp - 0x1c98]
push esi
call fcn.00404a1e
push dword [ebp - 0x1c98]
push esi
call fcn.004047c0
cmp byte [ebp + 0x78], 0
je 0x403eff
xor ebx, ebx
push ebx
push 0x412e24
lea eax, [ebp + 0x24]
push 0x20
push eax
call fcn.00406e59
add esp, 0x10
cmp byte [ebp - 0x1c91], 0
je 0x403eef
cmp word [ebp - 0x490], 0
je 0x403eef
lea eax, [ebp - 0x490]
push eax
push edi
lea eax, [ebp + 0x24]
push eax
push esi
call fcn.00404a1e
cmp word [ebp - 0x890], 0
je 0x403ef9
lea eax, [ebp - 0x890]
push eax
push 0x412e9c
lea eax, [ebp + 0x24]
push eax
push esi
call fcn.00404a1e
jmp 0x403ef9
lea eax, [ebp + 0x24]
push eax
push esi
call fcn.004047c0
inc ebx
cmp ebx, 0x64
jl 0x403e94
mov ecx, dword [ebp + 0x64]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040790a
add ebp, 0x68
leave
ret 0x10