Function at 0x447880
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
mov eax, dword [ebp]
mov dword [esp + 0x4c], 0
mov eax, dword [eax + 0x60]
add eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x44], eax
test edi, edi
je 0x4478c9
mov dword [edi], 0
mov ebx, dword [esp + 0x78]
lea eax, [ebp + 4]
mov dword [esp + 0x34], eax
test ebx, ebx
mov ebx, dword [esp + 0x74]
sete byte [esp + 0x3f]
xor esi, esi
jmp 0x447988
lea eax, [esp + 0x40]
mov dword [esp], esi
mov edx, dword [esp + 0x34]
mov ecx, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ebp]
call fcn.00446850
mov ecx, edx
or ecx, eax
jne 0x447ad0
mov edx, dword [esp + 0x48]
test edi, edi
je 0x447961
mov ebx, dword [edi]
test ebx, ebx
jne 0x447961
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x88]
ja 0x447961
mov ecx, dword [esp + 0x88]
sub ecx, eax
mov eax, ecx
cmp ecx, edx
jae 0x447961
mov ecx, dword [esp + 0x90]
mov dword [edi], 1
test ecx, ecx
je 0x447961
mov ecx, dword [esp + 0x90]
add eax, esi
mov dword [ecx], eax
mov ebx, dword [esp + 0x4c]
add esi, edx
cmp ebx, 0xffffffff
je 0x44799d
cmp ebx, 0xfffffff7
je 0x447b70
cmp dword [esp + 0x38], ebx
jb 0x447a20
cmp ebx, 1
jbe 0x447a20
cmp esi, dword [esp + 0x78]
jb 0x4478f0
cmp byte [esp + 0x3f], 0
jne 0x4478f0
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x4479b6
cmp dword [esp + 0x78], esi
mov eax, esi
mov edi, dword [esp + 0x7c]
cmovbe eax, dword [esp + 0x78]
mov dword [edi], eax
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x4479e9
mov eax, 0
mov edx, esi
sub edx, dword [esp + 0x78]
cmp dword [esp + 0x78], esi
cmova edx, eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x44]
sub eax, 1
mov edi, dword [esp + 0x80]
sub eax, edx
mov dword [edi], eax
mov edx, dword [esp + 0x84]
test edx, edx
je 0x447ac2
cmp dword [esp + 0x78], esi
jb 0x447c00
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x84]
xor ecx, ecx
xor edx, edx
mov dword [edi], eax
add esp, 0x5c
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x44]
mov esi, dword [fcn.004a1b90]
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x40]
mov dword [esp], 2
call esi
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edi
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53dd60
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, 0x22
xor edx, edx
add esp, 0x5c
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
xor edx, edx
jmp 0x447ab8
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
call fcn.0041d490
mov esi, dword [fcn.004a1b90]
mov dword [esp], 2
mov edi, eax
call esi
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53dc88
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
add esp, 0x5c
pop ebx
pop esi
mov eax, ecx
pop edi
pop ebp
ret
mov eax, dword [esp + 0x44]
mov ebx, dword [fcn.004a1b90]
mov dword [esp], 2
lea esi, [edx + eax - 1]
call ebx
mov edi, dword [esp + 0x74]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x53d400
mov dword [esp + 0x10], edi
mov dword [esp + 4], 0x53dce0
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
add esp, 0x5c
mov ecx, 0x16
xor edx, edx
pop ebx
mov eax, ecx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x44]
add eax, dword [esp + 0x78]
sub eax, esi
jmp 0x447a06