Function at 0x4c0180
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push dword [edi]
call fcn.005960c7
mov ebx, eax
push edi
push 0
mov dword [ebp - 4], ebx
call fcn.0045d510
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0xc]
add esp, 0xc
movsx ecx, word [esi + 0x36]
push eax
sub esp, 8
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.005990c0
add esp, 0xc
lea eax, [ebp - 0x1c]
fstp qword [ebp - 0x14]
push eax
movsx eax, word [esi + 0x38]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.005990c0
push dword [edi]
fstp qword [ebp - 0x24]
push 1
push 4
push 0x5d753c
call fcn.0059628c
push edi
push 0x3ed
call fcn.0045d590
push edi
push 0
call fcn.0045d590
push edi
push 0x10
call fcn.0045d510
cvttsd2si eax, qword [ebp - 0xc]
push edi
movzx eax, ax
push eax
call fcn.0045d590
movsd xmm0, qword [ebp - 0x14]
mulsd xmm0, qword [0x5ddbd8]
push edi
cvttsd2si eax, xmm0
movzx eax, ax
push eax
call fcn.0045d590
add esp, 0x44
push edi
push 1
call fcn.0045d590
push edi
push 1
call fcn.0045d590
cvttsd2si eax, qword [ebp - 0x1c]
push edi
movzx eax, ax
push eax
call fcn.0045d590
movsd xmm0, qword [ebp - 0x24]
mulsd xmm0, qword [0x5ddbd8]
push edi
cvttsd2si eax, xmm0
movzx eax, ax
push eax
call fcn.0045d590
push edi
push 1
call fcn.0045d590
push edi
push 1
call fcn.0045d590
mov esi, dword [esi + 0x48]
add esp, 0x30
test esi, esi
je 0x4c03cb
lea esp, [esp]
mov eax, dword [esi]
cmp eax, 1
jne 0x4c02ed
push dword [edi]
push eax
push 4
push 0x5d753c
call fcn.0059628c
push edi
push 0x422
call fcn.0045d590
push edi
push 0
call fcn.0045d590
mov eax, dword [esi + 4]
sub eax, 6
push edi
push eax
call fcn.0045d510
push dword [edi]
mov eax, dword [esi + 4]
sub eax, 6
push 1
push eax
mov eax, dword [esi + 8]
add eax, 6
push eax
jmp 0x4c03b5
cmp eax, 2
jne 0x4c035e
mov ecx, dword [esi + 8]
cmp byte [ecx + 0x1a], 0x1c
lea eax, [ecx + 0x1a]
mov ebx, dword [esi + 4]
mov dword [ebp + 8], eax
jne 0x4c0309
sub ebx, 0x1a
jmp 0x4c0323
cmp byte [ecx + 0x1b], 0x1c
lea eax, [ecx + 0x1b]
mov dword [ebp + 8], eax
jne 0x4c031a
sub ebx, 0x1b
jmp 0x4c0323
lea eax, [ecx + 0x18]
sub ebx, 0x18
mov dword [ebp + 8], eax
push dword [edi]
add ebx, 2
push 1
push 4
push 0x5d753c
call fcn.0059628c
push edi
push 0x404
call fcn.0045d590
push edi
push 0
call fcn.0045d590
push edi
push ebx
call fcn.0045d510
push dword [edi]
mov eax, dword [ebp + 8]
push 1
push ebx
add eax, 0xfffffffe
push eax
jmp 0x4c03b5
cmp eax, 3
jne 0x4c037b
push dword [edi]
push 1
push 4
push 0x5d753c
call fcn.0059628c
push edi
push 0x424
jmp 0x4c0395
cmp eax, 4
jne 0x4c03bd
push dword [edi]
push 1
push eax
push 0x5d753c
call fcn.0059628c
push edi
push 0x40f
call fcn.0045d590
push edi
push 0
call fcn.0045d590
push edi
push dword [esi + 4]
call fcn.0045d510
push dword [edi]
push 1
push dword [esi + 4]
push dword [esi + 8]
call fcn.0059628c
add esp, 0x38
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4c02a0
mov ebx, dword [ebp - 4]
push dword [edi]
call fcn.005960c7
add esp, 4
and eax, 0x80000001
jns 0x4c03e1
dec eax
or eax, 0xfffffffe
inc eax
je 0x4c040b
push dword [edi]
push 1
push 1
push 0x5c33e8
call fcn.0059628c
push dword [edi]
call fcn.005960c7
add esp, 0x14
and eax, 0x80000001
jns 0x4c0409
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4c03e3
push dword [edi]
call fcn.005960c7
push 0
push ebx
push dword [edi]
mov esi, eax
call fcn.00595cb4
mov ecx, esi
sub ecx, ebx
sub ecx, 4
push edi
push ecx
call fcn.0045d510
push 0
push esi
push dword [edi]
call fcn.00595cb4
add esp, 0x24
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret