Function at 0x507580
Capabilities:
Write file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x1448
call fcn.00401d7a
mov eax, dword [0x577400]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
sar eax, 6
mov ecx, dword [ebp + 0xc]
and ecx, 0x3f
imul edx, ecx, 0x38
mov eax, dword [eax*4 + 0x57ac30]
mov ecx, dword [eax + edx + 0x18]
mov dword [ebp - 0x1444], ecx
mov edx, dword [ebp + 0x10]
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x1430], edx
xor eax, eax
mov dword [ebp - 0x1414], eax
mov dword [ebp - 0x1410], eax
mov dword [ebp - 0x140c], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x141c], ecx
mov edx, dword [ebp - 0x141c]
cmp edx, dword [ebp - 0x1430]
jae 0x5077e8
lea eax, [ebp - 8]
mov dword [ebp - 0x1434], eax
lea ecx, [ebp - 0x6b0]
mov dword [ebp - 0x1418], ecx
mov edx, dword [ebp - 0x1418]
cmp edx, dword [ebp - 0x1434]
jae 0x5076a3
mov eax, dword [ebp - 0x141c]
cmp eax, dword [ebp - 0x1430]
jae 0x5076a3
mov ecx, dword [ebp - 0x141c]
mov dx, word [ecx]
mov word [ebp - 0x1426], dx
mov eax, dword [ebp - 0x141c]
add eax, 2
mov dword [ebp - 0x141c], eax
mov cx, word [ebp - 0x1426]
mov word [ebp - 0x1420], cx
movzx edx, word [ebp - 0x1420]
cmp edx, 0xa
jne 0x50767f
mov eax, 0xd
mov ecx, dword [ebp - 0x1418]
mov word [ecx], ax
mov edx, dword [ebp - 0x1418]
add edx, 2
mov dword [ebp - 0x1418], edx
mov eax, dword [ebp - 0x1418]
mov cx, word [ebp - 0x1420]
mov word [eax], cx
mov edx, dword [ebp - 0x1418]
add edx, 2
mov dword [ebp - 0x1418], edx
jmp 0x507609
mov eax, dword [ebp - 0x1418]
lea ecx, [ebp - 0x6b0]
sub eax, ecx
sar eax, 1
mov dword [ebp - 0x1438], eax
push 0
push 0
push 0xd55
lea edx, [ebp - 0x1408]
push edx
mov eax, dword [ebp - 0x1438]
push eax
lea ecx, [ebp - 0x6b0]
push ecx
push 0
push 0xfde9
call fcn.004066f9
add esp, 0x20
mov dword [ebp - 0x142c], eax
cmp dword [ebp - 0x142c], 0
jne 0x507726
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1414], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1414]
mov dword [edx], eax
mov ecx, dword [ebp - 0x1410]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x140c]
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
jmp 0x507808
mov dword [ebp - 0x1424], 0
mov ecx, dword [ebp - 0x1424]
cmp ecx, dword [ebp - 0x142c]
jae 0x5077d4
mov edx, dword [ebp - 0x1424]
lea eax, [ebp + edx - 0x1408]
mov dword [ebp - 0x1440], eax
mov ecx, dword [ebp - 0x142c]
sub ecx, dword [ebp - 0x1424]
mov dword [ebp - 0x143c], ecx
push 0
lea edx, [ebp - 0x1448]
push edx
mov eax, dword [ebp - 0x143c]
push eax
mov ecx, dword [ebp - 0x1440]
push ecx
mov edx, dword [ebp - 0x1444]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x5077bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1414], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1414]
mov dword [eax], ecx
mov edx, dword [ebp - 0x1410]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x140c]
mov dword [eax + 8], ecx
mov eax, dword [ebp + 8]
jmp 0x507808
mov edx, dword [ebp - 0x1424]
add edx, dword [ebp - 0x1448]
mov dword [ebp - 0x1424], edx
jmp 0x507730
mov eax, dword [ebp - 0x141c]
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0x1410], eax
jmp 0x5075e2
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1414]
mov dword [ecx], edx
mov eax, dword [ebp - 0x1410]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x140c]
mov dword [ecx + 8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004030b7
mov esp, ebp
pop ebp
ret