Function at 0x4159a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x42c
mov eax, 0x5b77
mov word [0x4ad024], ax
push ebx
mov ebx, dword [ebp + 8]
mov ecx, ebx
call fcn.0041a310
cmp eax, 0x8000
jbe 0x4162f1
mov eax, dword [0x4ad410]
movzx ecx, word [0x4ad024]
add eax, 0xfaaea6c9
imul ecx, eax
mov word [0x4ad024], cx
movsx eax, word [0x4ad15c]
movsd xmm2, qword [0x4ad320]
movss xmm0, dword [0x4ad1d0]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movsd qword [0x4ad320], xmm2
movss xmm0, dword [0x4ad1d0]
addss xmm0, dword [0x49eed8]
movss dword [0x4ad1d0], xmm0
dec dword [0x4ad288]
movss xmm1, dword [0x4ad11c]
mov eax, dword [0x4ad288]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [0x4ad018], xmm1
movss xmm0, dword [0x4ad11c]
addss xmm0, dword [0x49eed8]
movss dword [0x4ad11c], xmm0
mov eax, dword [0x4ad0a4]
inc dword [0x4ad0a4]
add eax, 0x2109ac1c
cmp eax, 0xc483319b
jle 0x415abb
movsx eax, word [0x4ad034]
movss xmm1, dword [0x4ad11c]
movd xmm0, eax
movsx eax, word [0x4ad1e0]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ad1e0], ax
jmp 0x415ad3
movsx eax, word [0x4ad230]
add eax, 0xfd88cdb
mov dword [0x4ad404], eax
dec word [0x4ad230]
push esi
lea eax, [ebp - 0x11c]
push edi
push eax
call fcn.00449a00
movss xmm0, dword [0x4ad20c]
mov esi, eax
subss xmm0, dword [0x4a2530]
movss dword [0x4ad20c], xmm0
call fcn.0043b800
movzx ecx, al
and ecx, 0x80000003
jns 0x415b10
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, 7
lea eax, [ebp - 0x11c]
push ecx
add eax, esi
push eax
call fcn.004221c0
movzx eax, word [0x4ad1d8]
sub eax, 0x3dbddcc7
push 5
push 0x335a
mov word [0x4ad1d8], ax
call fcn.0043dd00
movsx ecx, word [0x4ad144]
add esp, 0x14
movss xmm1, dword [0x4ad088]
add ecx, 0x61c9e548
movss xmm0, dword [0x4ad088]
subss xmm1, dword [0x4a0be0]
addss xmm0, dword [0x49eed8]
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
mov dword [ebp - 4], eax
movss dword [0x4ad088], xmm0
comiss xmm2, xmm1
jb 0x415b9f
movsd xmm0, qword [0x4ad3d8]
subsd xmm0, qword [0x4a0570]
movsd qword [0x4ad3d8], xmm0
mov edx, eax
mov esi, eax
mov al, byte [edx]
inc edx
test al, al
jne 0x415ba3
lea edi, [ebp - 0x11c]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x415bb3
movsd xmm1, qword [0x4ad298]
mov ecx, edx
subsd xmm1, qword [0x4a1b50]
movsd xmm0, qword [0x4ad458]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
subsd xmm1, xmm0
mov ecx, edx
and ecx, 3
push 3
rep movsb byte es:[edi], byte [esi]
push 0x2dd6
movsd qword [0x4ad420], xmm1
call fcn.0043dd00
push dword [ebp - 4]
add dword [0x4ad3a8], 0x60792922
mov esi, eax
push 5
call fcn.0040f590
imul ecx, dword [0x4ad334], 0xa69dfaae
lea eax, [ebp - 0x11c]
push esi
push eax
mov dword [0x4ad334], ecx
call fcn.00459c82
movsx ecx, word [0x4ad124]
mov edx, 0x8f28265d
sub edx, ecx
mov edi, eax
push esi
mov dword [0x4ad450], edx
dec word [0x4ad124]
push 3
call fcn.0040f590
imul eax, dword [0x4ad158], 0x6122d4d3
add esp, 0x20
mov dword [0x4ad158], eax
test edi, edi
je 0x41623b
add dword [0x4ad208], 0xd342d8ac
mov ecx, ebx
mov eax, dword [0x4ad4c0]
sub dword [0x4ad158], eax
push edi
push 1
call fcn.0041a310
push eax
mov ecx, ebx
call fcn.00403a50
push eax
call fcn.00459fae
movsx eax, word [0x4ad2c8]
movss xmm0, dword [0x4ad10c]
push edi
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
movss dword [0x4ad10c], xmm0
dec word [0x4ad2c8]
call fcn.00459693
movsx ecx, word [0x4ad31c]
add esp, 0x14
movsx eax, word [0x4ad4c4]
add ecx, 0x91db90e8
cmp eax, ecx
jg 0x415d1f
movsx eax, word [0x4ad344]
movsd xmm1, qword [0x4ad180]
add eax, 0x3daae9a8
movd xmm0, eax
movsx eax, word [0x4ad024]
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov word [0x4ad024], ax
mov ecx, ebx
call fcn.004353b0
movsd xmm0, qword [0x4ad3b8]
subsd xmm0, qword [0x49f6d8]
mov byte [ebp - 0x120], 0
push 0x104
movsd qword [0x4ad3b8], xmm0
dec dword [0x4ad32c]
mov ax, word [0x4ad1c0]
movsx ecx, ax
mov eax, dword [0x4ad32c]
sub ecx, eax
movsx eax, word [0x4ad438]
add eax, ecx
movzx ecx, word [0x4ad1e0]
add ecx, eax
lea eax, [ebp - 0x224]
push eax
mov word [0x4ad1c0], cx
dec word [0x4ad438]
push 0
call dword [0x4ae180]
movsd xmm0, qword [0x4ad418]
addsd xmm0, qword [0x49eee0]
push 0x15
push 0x2784
movsd qword [0x4ad418], xmm0
movss xmm0, dword [0x4ad440]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad418]
addsd xmm0, xmm1
mov byte [ebp - 0x225], 0
movsd qword [0x4ad2b8], xmm0
movss xmm0, dword [0x4ad308]
subss xmm0, dword [0x4a18dc]
movss dword [str.XvRM_eN], xmm0
movss xmm0, dword [0x4ad308]
addss xmm0, dword [0x49eed8]
movss dword [0x4ad308], xmm0
call fcn.0043dd00
movsd xmm1, qword [0x4ad3f0]
add esp, 8
movss xmm0, dword [0x4ad1a8]
mov esi, eax
addss xmm0, dword [0x4a1750]
movss xmm3, dword [0x49eed8]
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
movss xmm0, dword [0x4ad1a8]
subss xmm0, xmm3
lahf
movss dword [0x4ad1a8], xmm0
test ah, 0x44
jp 0x415f29
movsd xmm0, qword [0x4ad180]
movsd xmm2, qword [0x49f630]
subsd xmm2, xmm0
movss xmm0, dword [0x4ad408]
movsd xmm1, qword [0x4ad1a0]
movsx eax, word [0x4ad01c]
subsd xmm1, qword [0x4a0310]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
ucomisd xmm2, xmm0
movsd xmm0, qword [0x4ad1a0]
addsd xmm0, qword [0x49eee0]
lahf
movsd qword [0x4ad1a0], xmm0
movss xmm0, dword [0x4ad408]
subss xmm0, xmm3
movss dword [0x4ad408], xmm0
movsd xmm0, qword [0x4ad180]
subsd xmm0, qword [0x49eee0]
movsd qword [0x4ad180], xmm0
test ah, 0x44
jp 0x415f94
movsx eax, word [0x4ad124]
movsd xmm1, qword [0x4ad0b0]
movss xmm0, dword [0x4ad1c4]
cvtps2pd xmm0, xmm0
movd xmm2, eax
subsd xmm1, xmm0
cvtdq2pd xmm2, xmm2
addsd xmm1, qword [0x49f750]
subsd xmm2, xmm1
cvttsd2si eax, xmm2
mov word [0x4ad124], ax
jmp 0x415f94
movss xmm0, dword [0x4ad200]
movss xmm1, dword [0x4a12c4]
subss xmm0, xmm3
movss dword [0x4ad200], xmm0
movss xmm0, dword [0x4ad200]
subss xmm1, xmm0
cvtps2pd xmm2, xmm1
movsd xmm1, qword [0x4ad480]
movsd xmm0, qword [0x4ad480]
subsd xmm1, qword [0x4a2190]
subsd xmm0, qword [0x49eee0]
comisd xmm1, xmm2
movsd qword [0x4ad480], xmm0
jbe 0x415f94
movzx eax, word [0x4ad0ec]
sub eax, 0x79ab4574
mov word [0x4ad0ec], ax
push dword [0x4ae8c4]
lea eax, [ebp - 0x224]
push dword [0x4ae8ac]
push eax
push esi
lea eax, [ebp - 0x42c]
push 0x207
push eax
call fcn.0041f990
mov eax, 0xffffd660
push esi
push 0x15
mov word [0x4ad44c], ax
call fcn.0040f590
movsd xmm1, qword [0x4ad1f8]
add esp, 0x20
addsd xmm1, qword [0x49fd40]
movsd xmm0, qword [0x4a1a68]
subsd xmm1, qword [0x49f688]
comisd xmm0, xmm1
jbe 0x416031
movsd xmm1, qword [0x4ad298]
movsx eax, word [0x4ad24c]
subsd xmm1, qword [0x4a1ea8]
add eax, 0x6c97ad0f
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x416031
movzx eax, word [0x4ad44c]
add eax, 0x39766022
mov word [0x4ad44c], ax
push dword [0x4ae8c4]
call fcn.0043af30
inc dword [0x4ad340]
add esp, 4
mov eax, dword [0x4ad340]
movss xmm1, dword [0x4ad02c]
movd xmm0, eax
movsx eax, word [0x4ad1d4]
inc word [0x4ad1d4]
sub eax, 0x23685d0d
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, dword [0x4a0bc8]
comiss xmm0, xmm1
jbe 0x4160b6
movsx eax, word [0x4ad084]
inc word [0x4ad084]
sub eax, 0x6d5789b1
cmp eax, 0x4aa42138
jg 0x416101
mov ax, word [0x4ad414]
mov ecx, dword [0x4ad158]
cwde
imul ecx, eax
mov dword [0x4ad158], ecx
jmp 0x416101
movsd xmm1, qword [0x4ad3b8]
movss xmm0, dword [0x4ad380]
addsd xmm1, qword [0x49f060]
cvtps2pd xmm0, xmm0
addsd xmm1, qword [0x49ef18]
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad380], xmm0
movsd xmm0, qword [0x4ad3b8]
subsd xmm0, qword [0x49eee0]
movsd qword [0x4ad3b8], xmm0
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x11c]
push eax
call fcn.0041bc20
movss xmm0, dword [0x4ad1bc]
lea eax, [ebp - 0x42c]
cvtps2pd xmm1, xmm0
push 0x208
push 0
push eax
movsd xmm0, qword [0x4ad4f8]
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad1bc], xmm0
call fcn.0044c4b0
mov ax, word [0x4ad3c4]
cwde
sub dword [0x4ad0a4], eax
lea eax, [ebp - 0x224]
push 0x105
push 0
push eax
call fcn.0044c4b0
movsd xmm1, qword [0x4ad0b0]
add esp, 0x20
subsd xmm1, qword [0x4ad0f0]
movss xmm0, dword [0x4ad304]
cvtps2pd xmm0, xmm0
push 0x15f90
subsd xmm1, qword [0x4a01b8]
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad304], xmm0
movsd xmm0, qword [0x4ad0b0]
addsd xmm0, qword [0x49eee0]
movsd qword [0x4ad0b0], xmm0
call dword [0x4ae1dc]
movss xmm1, dword [0x4ad160]
subss xmm1, dword [0x4a12f4]
movss xmm0, dword [0x4a0d5c]
comiss xmm0, xmm1
jbe 0x416200
movss xmm0, dword [0x4ad1bc]
subss xmm0, dword [0x4a18cc]
subss xmm0, dword [0x4a1274]
movss dword [0x4ad3ac], xmm0
lea eax, [ebp - 0x11c]
push eax
call dword [0x4ae12c]
movsx eax, word [0x4ad31c]
movsd xmm0, qword [0x4ad0d8]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad440], xmm0
inc word [0x4ad31c]
movss xmm0, dword [0x4ad10c]
lea eax, [ebp - 0x11c]
subss xmm0, dword [0x4a11c0]
push 0x118
push 0
push eax
movss dword [0x4ad10c], xmm0
call fcn.0044c4b0
movss xmm1, dword [0x4ad4dc]
add esp, 0xc
movss xmm0, dword [0x4a1214]
comiss xmm0, xmm1
pop edi
pop esi
jbe 0x4162f1
movsd xmm0, qword [0x4ad0d8]
subsd xmm0, qword [0x49eee0]
movsd qword [0x4ad0d8], xmm0
movsd xmm2, qword [0x4ad4b8]
movsd xmm1, qword [0x4ad0d8]
comisd xmm2, xmm1
movsd xmm0, qword [0x4ad4b8]
subsd xmm0, qword [0x49eee0]
movsd qword [0x4ad4b8], xmm0
jbe 0x4162f1
movss xmm0, dword [0x4ad2f4]
addss xmm0, dword [0x49eed8]
movss dword [0x4ad2f4], xmm0
dec dword [0x4ad218]
mov eax, dword [0x4ad218]
movss xmm0, dword [0x4ad2f4]
movsx eax, word [0x4ad168]
mov ecx, dword [0x4ad3f8]
add eax, 0x9844d0f8
add ecx, eax
mov word [0x4ad168], cx
pop ebx
mov esp, ebp
pop ebp
ret