Function at 0x425720
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x58
movzx eax, word [ebp + 0xc]
xorps xmm0, xmm0
push esi
xor esi, esi
cwde
cmp word [0x519114], 1
push edi
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x2c], xmm0
mov dword [esp + 0x10], eax
jle 0x4257ee
mov edi, dword [ebp + 8]
shl eax, 9
movss xmm0, dword [eax + edi + 0x5c]
movss xmm2, dword [eax + edi + 0x64]
movss xmm1, dword [eax + edi + 0x60]
subss xmm2, xmm0
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [eax + edi + 0x68]
subss xmm0, xmm1
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x1c], xmm2
movaps xmm1, xmm0
movss dword [esp + 0x18], xmm0
mulss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x4257c1
sqrtsd xmm0, xmm0
jmp 0x4257c6
call fcn.0045bb50
movss xmm1, dword [esp + 0x1c]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0x10]
divss xmm1, xmm0
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [esp + 0x18]
divss xmm1, xmm0
movss dword [esp + 0x18], xmm1
push 0x4aa200
push eax
push str.BMQMAX
push 0x4a9c00
push str._s_s_i_s
push 0x4a9a00
call fcn.004015c0
push 0x4a9a00
call fcn.004026f0
push 0x48a470
push 0x4a9a00
call fcn.0044c7ec
mov ecx, dword [esp + 0x34]
add esp, 0x24
mov edi, dword [ebp + 8]
mov edx, ecx
shl edx, 9
mov dword [0x630d9c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], 1
mov dword [esp + 0x38], 0x1770
test eax, eax
je 0x425b5a
push eax
push 1
lea eax, [esp + 0x14]
push 2
push eax
call fcn.0044ca9e
mov ecx, dword [esp + 0x24]
mov eax, 1
mov edx, eax
mov dword [esp + 0x34], eax
add esp, 0x10
xor esi, esi
cmp dx, word [ecx + edi + 0x1d6]
jg 0x425b3f
mov ecx, dword [esp + 0x10]
shl ecx, 8
mov dword [esp + 0x40], ecx
cwde
mov edx, 1
add eax, ecx
movzx eax, word [edi + eax*2 + 0x2a]
cmp dx, ax
mov edx, dword [esp + 0x14]
jg 0x425b28
mov dword [esp + 0x34], eax
mov edi, 4
mov dword [esp + 0x30], edi
nop dword [eax]
push dword [0x630d9c]
lea eax, [esp + 0x4c]
push 1
push 8
push eax
call fcn.0044ca9e
push dword [0x630d9c]
lea eax, [esp + 0x64]
push 1
push 8
push eax
call fcn.0044ca9e
push dword [0x630d9c]
lea eax, [esp + 0x7c]
push 1
push 8
push eax
call fcn.0044ca9e
add esp, 0x30
cmp si, word [esp + 0x38]
jge 0x425b05
movsd xmm0, qword [esp + 0x50]
inc esi
movsx edi, si
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x3c], edi
mov eax, dword [edi*4 + 0x591a00]
movss dword [eax + 0xc], xmm0
movsd xmm0, qword [esp + 0x58]
andps xmm0, xmmword [0x48bc20]
mov eax, dword [edi*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 8], xmm0
movsd xmm0, qword [esp + 0x48]
mov eax, dword [edi*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax], xmm0
mov eax, dword [edi*4 + 0x591a00]
mov dword [eax + 4], 0
cmp word [0x519114], 1
je 0x425a02
movss xmm1, dword [esp + 0x18]
lea eax, [esp + 8]
movss xmm0, dword [esp + 0x28]
cvtps2pd xmm1, xmm1
push eax
sub esp, 0x10
lea eax, [esp + 0x34]
cvtps2pd xmm0, xmm0
mulsd xmm1, qword [esp + 0x5c]
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [esp + 0x30]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
movsd qword [esp + 8], xmm0
movss xmm0, dword [esp + 0x40]
mulsd xmm1, qword [esp + 0x5c]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
call fcn.00424790
add esp, 0x18
cmp word [esp + 8], 1
jne 0x4259ef
mov eax, 1
mov dword [esp + 0x20], eax
jmp 0x4259f9
mov eax, dword [esp + 0x20]
cmp ax, 1
jl 0x425a02
cmp ax, word [0x519114]
jle 0x425a0b
mov eax, 1
mov dword [esp + 0x20], eax
movsd xmm2, qword [0x48bb30]
cwde
imul edx, eax, 0x5c
mov eax, dword [edi*4 + 0x591a00]
mov edi, dword [esp + 0x24]
movsx ecx, di
mov edi, dword [esp + 0x3c]
movss xmm0, dword [edx + 0x611880]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x5c], xmm0
mov eax, dword [esp + 0x10]
shl eax, 7
add ecx, eax
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + ecx*4 + 0xd0]
addss xmm0, dword [edx + 0x611880]
mov eax, dword [edi*4 + 0x591a00]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x1c], xmm0
mov eax, dword [edi*4 + 0x591a00]
cvtps2pd xmm1, xmm0
movaps xmm0, xmm1
subsd xmm0, qword [0x630850]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x58], xmm0
subsd xmm1, qword [0x630848]
mov eax, dword [edi*4 + 0x591a00]
cvtpd2ps xmm0, xmm1
movss dword [eax + 0x60], xmm0
movss xmm0, dword [edx + 0x611880]
mov eax, dword [edi*4 + 0x591a00]
cvtps2pd xmm0, xmm0
movss xmm1, dword [eax + 0x60]
mulsd xmm0, qword [0x48bab8]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [eax + 0x64], xmm0
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + ecx*4 + 0x124]
mov eax, dword [edi*4 + 0x591a00]
mov edi, dword [esp + 0x30]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x14], xmm0
sub edi, 1
mov dword [esp + 0x30], edi
jne 0x4258c0
sub dword [esp + 0x34], 1
jne 0x4258b0
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp ax, word [edx + edi + 0x1d6]
jle 0x425892
push dword [0x630d9c]
call fcn.0044c4fe
movzx eax, word [ebp + 0xc]
add esp, 4
mov ecx, dword [esp + 0x10]
movsx edi, ax
jmp 0x425b60
mov dword [esp + 0x14], edx
mov edi, ecx
push 0x4aa200
push ecx
push str.BMQMIN
push 0x4a9c00
push str._s_s_i_s
push 0x4a9a00
call fcn.004015c0
push 0x4a9a00
call fcn.004026f0
push 0x48a470
push 0x4a9a00
call fcn.0044c7ec
add esp, 0x24
mov dword [0x630d9c], eax
test eax, eax
je 0x425cea
push eax
push 1
lea eax, [esp + 0x14]
xor esi, esi
push 2
push eax
call fcn.0044ca9e
mov ecx, dword [esp + 0x20]
mov eax, 1
mov edx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x30], eax
cmp ax, word [edx + ecx + 0x1d6]
jg 0x425cdc
shl edi, 8
mov dword [esp + 0x40], edi
nop dword [eax]
cwde
add eax, edi
movzx eax, word [ecx + eax*2 + 0x2a]
cmp word [esp + 0x44], ax
jg 0x425cbc
mov dword [esp + 0x34], eax
nop word [eax + eax]
mov edi, 4
nop word [eax + eax]
push dword [0x630d9c]
lea eax, [esp + 0x4c]
push 1
push 8
push eax
call fcn.0044ca9e
push dword [0x630d9c]
lea eax, [esp + 0x64]
push 1
push 8
push eax
call fcn.0044ca9e
push dword [0x630d9c]
lea eax, [esp + 0x7c]
push 1
push 8
push eax
call fcn.0044ca9e
add esp, 0x30
cmp si, word [esp + 0x38]
jge 0x425c9d
movsd xmm0, qword [esp + 0x50]
inc esi
movsx ecx, si
cvtpd2ps xmm0, xmm0
mov eax, dword [ecx*4 + 0x591a00]
movss dword [eax + 0x24], xmm0
movsd xmm0, qword [esp + 0x58]
andps xmm0, xmmword [0x48bc20]
mov eax, dword [ecx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x20], xmm0
sub edi, 1
jne 0x425c20
sub dword [esp + 0x34], 1
jne 0x425c10
mov edi, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp ax, word [edx + ecx + 0x1d6]
jle 0x425bf0
mov ax, word [ebp + 0xc]
cwde
mov dword [esp + 0x10], eax
push dword [0x630d9c]
call fcn.0044c4fe
add esp, 4
mov eax, dword [ebp + 0x10]
push 0x4aa200
push str.BLAGER0
push 0x4a9c00
push str._s_s_s
push 0x4a9a00
mov word [eax], si
call fcn.004015c0
push 0x48a470
push 0x4a9a00
call fcn.0044c7ec
mov esi, dword [esp + 0x2c]
add esp, 0x1c
mov dword [0x630d9c], eax
test eax, eax
je 0x425d65
imul ecx, esi, 0x23c
push 0
sub ecx, 0x23c
push ecx
push eax
call fcn.0045c24c
push dword [0x630d9c]
push 1
push 0x23c
push dword [ebp + 0x14]
call fcn.0044ca9e
push dword [0x630d9c]
call fcn.0044c4fe
add esp, 0x20
push 0x4aa200
push str.BEAML
push 0x4a9c00
push str._s_s_s
push 0x4a9a00
call fcn.004015c0
push 0x48a470
push 0x4a9a00
call fcn.0044c7ec
add esp, 0x1c
mov dword [0x630d9c], eax
test eax, eax
je 0x425dd0
shl esi, 7
push 0
add esi, 0xffffff80
push esi
push eax
call fcn.0045c24c
push dword [0x630d9c]
push 1
push 0x80
push dword [ebp + 0x18]
call fcn.0044ca9e
push dword [0x630d9c]
call fcn.0044c4fe
add esp, 0x20
pop edi
pop esi
mov esp, ebp
pop ebp
ret