Function at 0x409c20
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [esi + 0x98]
test eax, eax
je 0x409c6b
cmp byte [esi + 1], 0
je 0x409c6b
mov byte [eax + 0x10], 0
mov ebx, dword [esi + 0x98]
test ebx, ebx
je 0x409c6b
mov ecx, ebx
call fcn.004323a0
mov eax, dword [0x488420]
test eax, eax
je 0x409c65
dec dword [eax + 0x374]
push ebx
call edi
add esp, 4
cmp byte [esi], 0
mov dword [esi + 0x98], 0
je 0x40a44d
cmp byte [esi + 0x2fe0], 0
je 0x409ce5
mov ebx, dword [esi + 0x20]
test ebx, ebx
je 0x409ce5
mov eax, dword [0x488420]
lea ecx, [ebp - 4]
mov dword [ebp - 8], eax
mov dword [0x488420], esi
mov dword [esi + 0x2fe4], 0
mov dword [ebp - 4], 0
call fcn.004196a0
mov edx, 0x44a604
mov dword [ebp - 0xc], eax
mov ecx, ebx
call fcn.004047c0
mov ebx, eax
test ebx, ebx
je 0x409ced
push ebx
push dword [ebp - 4]
push 1
push dword [ebp - 0xc]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x14
jmp 0x409ced
mov eax, dword [0x488420]
mov dword [ebp - 8], eax
mov dword [0x488420], esi
call fcn.0041c240
mov eax, dword [ebp - 8]
xor ebx, ebx
mov dword [0x488420], eax
mov eax, dword [esi + 0x2fb8]
test eax, eax
jle 0x409d6a
nop dword [eax]
test ebx, ebx
js 0x409d18
cmp ebx, eax
jl 0x409d30
push 0x6c7
push 0x446378
push str.i___0__i___Size
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov eax, dword [esi + 0x2fc0]
mov eax, dword [eax + ebx*8 + 4]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x409d5f
mov ecx, eax
call fcn.0041db00
mov eax, dword [0x488420]
test eax, eax
je 0x409d57
dec dword [eax + 0x374]
push dword [ebp - 0xc]
call edi
add esp, 4
mov eax, dword [esi + 0x2fb8]
inc ebx
cmp ebx, eax
jl 0x409d10
mov edx, 6
mov ecx, esi
call fcn.00407280
mov eax, dword [esi + 0x1c00]
xor ebx, ebx
test eax, eax
jle 0x409ddb
test ebx, ebx
js 0x409d8a
cmp ebx, eax
jl 0x409da2
push 0x6c7
push 0x446378
push str.i___0__i___Size
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov eax, dword [esi + 0x1c08]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x409dd0
mov ecx, eax
call fcn.00406a00
mov eax, dword [0x488420]
test eax, eax
je 0x409dc8
dec dword [eax + 0x374]
push dword [ebp - 0xc]
call edi
add esp, 4
mov eax, dword [esi + 0x1c00]
inc ebx
cmp ebx, eax
jl 0x409d82
mov ecx, dword [esi + 0x1c08]
test ecx, ecx
je 0x409e18
mov eax, dword [0x488420]
mov dword [esi + 0x1c04], 0
mov dword [esi + 0x1c00], 0
test eax, eax
je 0x409e08
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1c08], 0
mov ecx, dword [esi + 0x1c14]
test ecx, ecx
je 0x409e55
mov eax, dword [0x488420]
mov dword [esi + 0x1c10], 0
mov dword [esi + 0x1c0c], 0
test eax, eax
je 0x409e45
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1c14], 0
mov ecx, dword [esi + 0x1c20]
test ecx, ecx
je 0x409e92
mov eax, dword [0x488420]
mov dword [esi + 0x1c1c], 0
mov dword [esi + 0x1c18], 0
test eax, eax
je 0x409e82
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1c20], 0
mov dword [esi + 0x1c48], 0
mov ecx, dword [esi + 0x1c2c]
test ecx, ecx
je 0x409ed9
mov eax, dword [0x488420]
mov dword [esi + 0x1c28], 0
mov dword [esi + 0x1c24], 0
test eax, eax
je 0x409ec9
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1c2c], 0
mov ecx, dword [esi + 0x1c38]
test ecx, ecx
je 0x409f16
mov eax, dword [0x488420]
mov dword [esi + 0x1c34], 0
mov dword [esi + 0x1c30], 0
test eax, eax
je 0x409f06
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1c38], 0
mov dword [esi + 0x1e18], 0
mov dword [esi + 0x1c50], 0
mov dword [esi + 0x1c4c], 0
mov dword [esi + 0x1cc4], 0
mov dword [esi + 0x1cb0], 0
mov dword [esi + 0x1c58], 0
mov ecx, dword [esi + 0x1d78]
test ecx, ecx
je 0x409f8f
mov eax, dword [0x488420]
mov dword [esi + 0x1d74], 0
mov dword [esi + 0x1d70], 0
test eax, eax
je 0x409f7f
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1d78], 0
mov ecx, dword [esi + 0x1d84]
test ecx, ecx
je 0x409fcc
mov eax, dword [0x488420]
mov dword [esi + 0x1d80], 0
mov dword [esi + 0x1d7c], 0
test eax, eax
je 0x409fbc
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1d84], 0
mov ecx, dword [esi + 0x1d90]
test ecx, ecx
je 0x40a009
mov eax, dword [0x488420]
mov dword [esi + 0x1d8c], 0
mov dword [esi + 0x1d88], 0
test eax, eax
je 0x409ff9
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1d90], 0
mov ecx, dword [esi + 0x1dc0]
test ecx, ecx
je 0x40a046
mov eax, dword [0x488420]
mov dword [esi + 0x1dbc], 0
mov dword [esi + 0x1db8], 0
test eax, eax
je 0x40a036
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1dc0], 0
mov ecx, dword [esi + 0x1dcc]
test ecx, ecx
je 0x40a083
mov eax, dword [0x488420]
mov dword [esi + 0x1dc8], 0
mov dword [esi + 0x1dc4], 0
test eax, eax
je 0x40a073
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1dcc], 0
mov eax, dword [esi + 0x1dd0]
xor ebx, ebx
mov dword [esi + 0x1de8], 0
mov dword [esi + 0x1de4], 0
mov dword [esi + 0x1de0], 0
test eax, eax
jle 0x40a0e9
nop dword [eax]
test ebx, ebx
js 0x40a0b8
cmp ebx, eax
jl 0x40a0d0
push 0x6c7
push 0x446378
push str.i___0__i___Size
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov ecx, dword [esi + 0x1dd8]
mov ecx, dword [ecx + ebx*4]
call fcn.004271c0
mov eax, dword [esi + 0x1dd0]
inc ebx
cmp ebx, eax
jl 0x40a0b0
mov ecx, dword [esi + 0x1dd8]
test ecx, ecx
je 0x40a126
mov eax, dword [0x488420]
mov dword [esi + 0x1dd4], 0
mov dword [esi + 0x1dd0], 0
test eax, eax
je 0x40a116
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x1dd8], 0
lea ecx, [esi + 0x2034]
call fcn.004263d0
mov ecx, dword [esi + 0x2058]
test ecx, ecx
je 0x40a16e
mov eax, dword [0x488420]
mov dword [esi + 0x2054], 0
mov dword [esi + 0x2050], 0
test eax, eax
je 0x40a15e
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2058], 0
mov ecx, dword [esi + 0x2064]
test ecx, ecx
je 0x40a1ab
mov eax, dword [0x488420]
mov dword [esi + 0x2060], 0
mov dword [esi + 0x205c], 0
test eax, eax
je 0x40a19b
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2064], 0
lea ecx, [esi + 0x1ff0]
call fcn.004265d0
mov ecx, dword [esi + 0x2014]
test ecx, ecx
je 0x40a1f3
mov eax, dword [0x488420]
mov dword [esi + 0x2010], 0
mov dword [esi + 0x200c], 0
test eax, eax
je 0x40a1e3
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2014], 0
mov ecx, dword [esi + 0x202c]
test ecx, ecx
je 0x40a230
mov eax, dword [0x488420]
mov dword [esi + 0x2028], 0
mov dword [esi + 0x2024], 0
test eax, eax
je 0x40a220
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x202c], 0
mov ecx, dword [esi + 0x2f90]
test ecx, ecx
je 0x40a26d
mov eax, dword [0x488420]
mov dword [esi + 0x2f8c], 0
mov dword [esi + 0x2f88], 0
test eax, eax
je 0x40a25d
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2f90], 0
mov ecx, dword [esi + 0x2f9c]
test ecx, ecx
je 0x40a2aa
mov eax, dword [0x488420]
mov dword [esi + 0x2f98], 0
mov dword [esi + 0x2f94], 0
test eax, eax
je 0x40a29a
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2f9c], 0
mov ecx, dword [esi + 0x2084]
test ecx, ecx
je 0x40a2e7
mov eax, dword [0x488420]
mov dword [esi + 0x2080], 0
mov dword [esi + 0x207c], 0
test eax, eax
je 0x40a2d7
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2084], 0
mov ecx, dword [esi + 0x2090]
test ecx, ecx
je 0x40a324
mov eax, dword [0x488420]
mov dword [esi + 0x208c], 0
mov dword [esi + 0x2088], 0
test eax, eax
je 0x40a314
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2090], 0
mov ecx, dword [esi + 0x209c]
test ecx, ecx
je 0x40a361
mov eax, dword [0x488420]
mov dword [esi + 0x2098], 0
mov dword [esi + 0x2094], 0
test eax, eax
je 0x40a351
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x209c], 0
mov ecx, dword [esi + 0x3008]
test ecx, ecx
je 0x40a39e
mov eax, dword [0x488420]
mov dword [esi + 0x3004], 0
mov dword [esi + 0x3000], 0
test eax, eax
je 0x40a38e
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x3008], 0
mov ecx, dword [esi + 0x2ffc]
test ecx, ecx
je 0x40a3db
mov eax, dword [0x488420]
mov dword [esi + 0x2ff8], 0
mov dword [esi + 0x2ff4], 0
test eax, eax
je 0x40a3cb
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x2ffc], 0
cmp dword [esi + 0x3030], 0
je 0x40a40d
mov ebx, dword [esi + 0x3030]
push 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
cmp ebx, eax
je 0x40a403
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov dword [esi + 0x3030], 0
mov ecx, dword [esi + 0x303c]
test ecx, ecx
je 0x40a44a
mov eax, dword [0x488420]
mov dword [esi + 0x3038], 0
mov dword [esi + 0x3034], 0
test eax, eax
je 0x40a43a
dec dword [eax + 0x374]
push ecx
call edi
add esp, 4
mov dword [esi + 0x303c], 0
mov byte [esi], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret