Function at 0x45f0b0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 8], ebx
call fcn.00425870
mov edi, eax
test edi, edi
jne 0x45f0cd
xor esi, esi
jmp 0x45f0ed
push 0x200
lea esi, [ebx + 0x40]
push 0
push esi
call sub.MSVCR110.dll_memset
push edi
push str._s_report_achi.bin
push esi
call dword [sym.imp.MSVCR110.dll_sprintf]
add esp, 0x18
push 0x5bb068
push esi
call dword [sym.imp.MSVCR110.dll_fopen]
mov edi, eax
add esp, 8
test edi, edi
je 0x45f128
push 2
push 0
push edi
call dword [sym.imp.MSVCR110.dll_fseek]
push edi
call dword [sym.imp.MSVCR110.dll_ftell]
push edi
mov esi, eax
call dword [sym.imp.MSVCR110.dll_fclose]
add esp, 0x14
cmp esi, 0x8000
je 0x45f1a6
call fcn.00425870
mov edi, eax
test edi, edi
jne 0x45f137
xor esi, esi
jmp 0x45f157
push 0x200
lea esi, [ebx + 0x40]
push 0
push esi
call sub.MSVCR110.dll_memset
push edi
push str._s_report_achi.bin
push esi
call dword [sym.imp.MSVCR110.dll_sprintf]
add esp, 0x18
push 0x58c83c
push esi
call dword [sym.imp.MSVCR110.dll_fopen]
mov edi, eax
add esp, 8
test edi, edi
je 0x45f1a6
push 0x8000
call dword [sym.imp.MSVCR110.dll_malloc]
push 0x8000
mov esi, eax
push 0
push esi
call sub.MSVCR110.dll_memset
push edi
push 0x8000
push 1
push esi
call dword [sym.imp.MSVCR110.dll_fwrite]
push edi
call dword [sym.imp.MSVCR110.dll_fclose]
push esi
call dword [sym.imp.MSVCR110.dll_free]
add esp, 0x28
call fcn.00425870
mov edi, eax
test edi, edi
jne 0x45f1b5
xor esi, esi
jmp 0x45f1d5
push 0x200
lea esi, [ebx + 0x40]
push 0
push esi
call sub.MSVCR110.dll_memset
push edi
push str._s_report_achi.bin
push esi
call dword [sym.imp.MSVCR110.dll_sprintf]
add esp, 0x18
push 0x58cf40
push esi
call dword [sym.imp.MSVCR110.dll_fopen]
mov edi, eax
add esp, 8
mov dword [ebp - 0xc], edi
test edi, edi
je 0x45f2c2
mov ecx, dword [ebx + 8]
mov edx, dword [ecx + 4]
sub edx, dword [ecx]
sar edx, 2
movzx eax, dl
imul eax, eax, 0x108
push eax
mov byte [ebp - 1], dl
mov dword [ebp - 0x14], eax
call fcn.00419c10
add esp, 4
cmp byte [ebp - 1], 0
mov ebx, eax
mov dword [ebp - 0x10], ebx
je 0x45f299
test ebx, ebx
je 0x45f299
mov eax, dword [sym.imp.MSVCR110.dll_fseek]
push 0
push 0
push edi
call eax
push edi
push 1
lea eax, [ebp - 1]
push 1
push eax
call dword [sym.imp.MSVCR110.dll_fwrite]
add esp, 0x1c
xor esi, esi
cmp byte [ebp - 1], 0
jbe 0x45f27b
mov edi, dword [ebp - 8]
lea esp, [esp]
mov eax, dword [edi + 8]
push 0x108
mov eax, dword [eax]
push dword [eax + esi*4]
push ebx
call sub.MSVCR110.dll_memcpy
movzx eax, byte [ebp - 1]
inc esi
add esp, 0xc
add ebx, 0x108
cmp esi, eax
jl 0x45f250
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
push edi
push dword [ebp - 0x14]
push 1
push ebx
call dword [sym.imp.MSVCR110.dll_fwrite]
push edi
call dword [sym.imp.MSVCR110.dll_fclose]
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [sym.imp.MSVCR110.dll_fseek]
push 0
push 0
push edi
mov byte [ebp - 1], 0
call eax
push edi
push 1
lea eax, [ebp - 1]
push 1
push eax
call dword [sym.imp.MSVCR110.dll_fwrite]
push edi
call dword [sym.imp.MSVCR110.dll_fclose]
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret