Function at 0x4177e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
movsx eax, word [0x45f180]
sub esp, 0x42c
mov ecx, 0xed293867
sub ecx, eax
add dword [0x45f16c], ecx
push ebx
mov ebx, dword [ebp + 8]
mov ecx, ebx
call fcn.004017e0
cmp eax, 0x8000
jbe 0x417b69
movsx eax, word [0x45f2e4]
movsd xmm1, qword [0x45f0a0]
movss xmm0, dword [0x45f064]
cvtps2pd xmm0, xmm0
movd xmm2, eax
cvtdq2pd xmm2, xmm2
subsd xmm1, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
mov word [0x45f2e4], ax
movsd xmm0, qword [0x45f0a0]
addsd xmm0, qword [0x4537a0]
movsd qword [0x45f0a0], xmm0
movsx eax, word [0x45f454]
inc word [0x45f454]
add eax, 0x3b8df9a9
cmp eax, 0x172106b9
jle 0x4178b5
movss xmm1, dword [0x45f248]
movss xmm0, dword [0x45f064]
subss xmm0, dword [0x454d08]
subss xmm1, xmm0
movss dword [0x45f248], xmm1
movss xmm0, dword [0x45f064]
subss xmm0, dword [0x45379c]
movss dword [0x45f064], xmm0
push esi
lea eax, [ebp - 0x11c]
push edi
push eax
call fcn.00413b50
mov esi, eax
call fcn.0040e630
movzx ecx, al
and ecx, 0x80000003
jns 0x4178da
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, 7
lea eax, [ebp - 0x11c]
push ecx
add eax, esi
push eax
call fcn.0041eb70
push 5
push 0x273a
call fcn.00411320
movss xmm0, dword [0x45f058]
mov edx, eax
subss xmm0, dword [0x45379c]
add esp, 0x14
mov dword [ebp - 4], edx
mov esi, edx
movss dword [0x45f058], xmm0
movss xmm1, dword [0x45f058]
movsx ecx, word [0x45f184]
subss xmm1, dword [0x454770]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x45f184], ax
mov al, byte [edx]
inc edx
test al, al
jne 0x417946
lea edi, [ebp - 0x11c]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417956
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push 3
rep movsb byte es:[edi], byte [esi]
push 0x2e86
call fcn.00411320
push dword [ebp - 4]
mov esi, eax
push 5
call fcn.0041b490
lea eax, [ebp - 0x11c]
push esi
push eax
call fcn.00422f97
push esi
push 3
mov edi, eax
call fcn.0041b490
add esp, 0x20
test edi, edi
je 0x417af3
push edi
push 1
mov ecx, ebx
call fcn.004017e0
push eax
mov ecx, ebx
call fcn.00407cb0
push eax
call fcn.0042314a
push edi
call fcn.00422c6c
add esp, 0x14
mov ecx, ebx
call fcn.0040df00
mov eax, dword [0x45f100]
movsd xmm0, qword [0x45f380]
add eax, 0x5e71640f
push 0x104
mov byte [ebp - 0x120], 0
movd xmm1, eax
lea eax, [ebp - 0x224]
cvtdq2pd xmm1, xmm1
push eax
push 0
subsd xmm1, xmm0
movsd xmm0, qword [0x45f460]
mulsd xmm0, xmm1
movsd qword [0x45f460], xmm0
call dword [0x460d9c]
push 0x15
push 0x3fc6
mov byte [ebp - 0x225], 0
call fcn.00411320
push dword [0x460c90]
mov esi, eax
lea eax, [ebp - 0x224]
push dword [0x460c78]
push eax
push esi
lea eax, [ebp - 0x42c]
push 0x207
push eax
call fcn.004234b5
push esi
push 0x15
call fcn.0041b490
push dword [0x460c90]
call fcn.00413870
movsx eax, word [0x45f4ac]
add eax, 0xafd3574b
add dword [0x45f14c], eax
lea eax, [ebp - 0x42c]
dec word [0x45f4ac]
push eax
lea eax, [ebp - 0x11c]
push eax
call fcn.00417580
movsx eax, word [0x45f118]
mov ecx, 0xeae5d232
sub ecx, eax
lea eax, [ebp - 0x42c]
add dword [0x45f304], ecx
dec word [0x45f118]
push 0x208
push 0
push eax
call fcn.00423df0
add esp, 0x40
lea eax, [ebp - 0x224]
push 0x105
push 0
push eax
call fcn.00423df0
add esp, 0xc
push 0x15f90
call dword [0x460df8]
lea eax, [ebp - 0x11c]
push eax
call dword [0x460d48]
push 0x118
lea eax, [ebp - 0x11c]
push 0
push eax
call fcn.00423df0
movsd xmm1, qword [0x45f4a0]
add esp, 0xc
movsx eax, word [0x45f3ec]
subsd xmm1, qword [0x454038]
add eax, 0x251bdf9e
pop edi
pop esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [0x45f4a0]
subsd xmm0, qword [0x4537a0]
lahf
movsd qword [0x45f4a0], xmm0
test ah, 0x44
jp 0x417b69
movsd xmm0, qword [0x45f110]
addsd xmm0, qword [0x45f098]
movsd qword [0x45f098], xmm0
movsd xmm0, qword [0x45f0f8]
addsd xmm0, qword [0x453b20]
pop ebx
cvttsd2si eax, xmm0
mov word [0x45f238], ax
mov esp, ebp
pop ebp
ret