Function at 0x100aae80
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [0x105d76c8]
push esi
cmp byte [ebx + 0xaf], 0
je 0x100aaea4
test byte [ebx + 0xc], 2
jne 0x100aaea4
mov byte [ebx + 0xaf], 0
cmp byte [ebx + 0x2d30], 0
push edi
jne 0x100aaf85
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x100aaf7e
push 0x10217eb8
push eax
call fcn.100a63d0
mov esi, eax
add esp, 8
test esi, esi
je 0x100aaf7e
push 2
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x100aaf74
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
je 0x100aaf74
push 0
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x100aaf74
push edi
call fcn.100a7e80
add esp, 4
mov edi, eax
push esi
test edi, edi
je 0x100aaf75
push dword [ebp - 4]
push 1
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
push esi
cmp eax, dword [ebp - 4]
je 0x100aaf60
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [0x105d76c8]
test eax, eax
je 0x100aaf4e
dec dword [eax + 0x370]
push dword [0x105d76e8]
push edi
call dword [0x1039c1f8]
add esp, 8
jmp 0x100aaf7e
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
push dword [ebp - 4]
push edi
call fcn.100a7ab0
add esp, 0xc
jmp 0x100aaf3f
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov byte [ebx + 0x2d30], 1
movss xmm0, dword [ebx + 0x2d34]
xorps xmm2, xmm2
comiss xmm0, xmm2
jbe 0x100aafcd
subss xmm0, dword [ebx + 0x18]
comiss xmm2, xmm0
movss dword [ebx + 0x2d34], xmm0
jb 0x100aafcd
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x100aafbc
push eax
call fcn.100adcb0
add esp, 4
xorps xmm2, xmm2
jmp 0x100aafc3
mov byte [ebx + 0x358], 1
mov dword [ebx + 0x2d34], 0
movss xmm0, dword [ebx + 0x18]
mov eax, dword [ebx + 0x94]
inc dword [ebx + 0x19a0]
cvtps2pd xmm0, xmm0
mov byte [ebx + 1], 1
mov dword [ebx + 0x2d0c], 0
mov dword [ebx + 0x19e8], 0
addsd xmm0, qword [ebx + 0x1998]
movsd qword [ebx + 0x1998], xmm0
mov byte [eax], 1
mov edx, dword [0x105d76c8]
mov esi, dword [edx + 0xa0]
test esi, esi
jne 0x100ab027
mov eax, dword [edx + 0x94]
mov eax, dword [eax + 0x3c]
mov esi, dword [eax]
movss xmm1, dword [edx + 0x98]
movss xmm0, dword [0x101bc1dc]
mov eax, dword [edx + 0x19ec]
mov dword [edx + 0x1908], esi
mulss xmm1, dword [esi + 0x10]
mulss xmm1, dword [esi + 0x44]
maxss xmm0, xmm1
movss dword [edx + 0x1910], xmm0
test eax, eax
je 0x100ab072
movss xmm2, dword [eax + 0x264]
mov eax, dword [0x105d76c8]
mulss xmm2, dword [eax + 0x1910]
movss dword [edx + 0x190c], xmm2
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x30]
mov dword [edx + 0x1914], ecx
lea ecx, [ebx + 0x1c6c]
mov dword [edx + 0x1918], eax
mov dword [edx + 0x191c], esi
movss dword [edx + 0x1920], xmm2
movss xmm0, dword [ebx + 0x10]
mov eax, dword [ebx + 0x15b4]
movss dword [ebp - 8], xmm0
movss xmm0, dword [ebx + 0x14]
movss dword [ebp - 4], xmm0
movups xmm0, xmmword [ebp - 0x10]
mov dword [ebx + 0x1924], eax
movups xmmword [ebx + 0x1928], xmm0
call fcn.100b35d0
mov eax, dword [ebx + 0x94]
lea ecx, [ebx + 0x1c6c]
push dword [eax + 8]
call fcn.100b5ff0
lea ecx, [ebx + 0x1c6c]
call fcn.100b5f20
xor ecx, ecx
mov edi, 2
cmp byte [ebx + 0x15b1], cl
cmovne ecx, edi
xor eax, eax
cmp byte [ebx + 0x15b0], al
setne al
or ecx, eax
mov dword [ebx + 0x1c90], ecx
lea ecx, [ebx + 0x1ce0]
call fcn.100b35d0
mov eax, dword [ebx + 0x94]
lea ecx, [ebx + 0x1ce0]
push dword [eax + 8]
call fcn.100b5ff0
lea ecx, [ebx + 0x1ce0]
call fcn.100b5f20
xor ecx, ecx
mov byte [ebx + 0x1c24], 0
cmp byte [ebx + 0x15b1], cl
mov dword [ebx + 0x1c28], 0
cmovne ecx, edi
mov dword [ebx + 0x1c30], 0
xor eax, eax
mov dword [ebx + 0x1c34], 0
cmp byte [ebx + 0x15b0], al
mov dword [ebx + 0x1c2c], 0
setne al
or ecx, eax
mov dword [ebx + 0x1d04], ecx
mov dword [ebx + 0x1c48], 0
mov dword [ebx + 0x1c4c], 0
mov dword [ebx + 0x1c40], 0
mov dword [ebx + 0x1c44], 0
mov dword [ebx + 0x1c38], 0
mov dword [ebx + 0x1c3c], 0
cmp byte [ebx + 0x1d58], 0
je 0x100ab210
mov eax, dword [ebx + 0x1d70]
cmp eax, dword [ebx + 0x1a0c]
jne 0x100ab210
mov ecx, dword [0x105d76c8]
cmp dword [ecx + 0x1a0c], eax
jne 0x100ab201
mov dword [ecx + 0x1a14], eax
cmp dword [ecx + 0x1a10], eax
jne 0x100ab210
mov byte [ecx + 0x1a20], 1
cmp dword [ebx + 0x1a00], 0
jne 0x100ab225
mov dword [ebx + 0x1a04], 0
jmp 0x100ab237
mov eax, dword [ebx + 0x19f8]
test eax, eax
je 0x100ab241
cmp dword [ebx + 0x1a0c], eax
jne 0x100ab241
mov dword [ebx + 0x1a08], 0
mov eax, dword [ebx + 0x19f8]
test eax, eax
je 0x100ab27b
movss xmm1, dword [ebx + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [ebx + 0x1a04]
movss dword [ebx + 0x1a04], xmm0
cmp dword [ebx + 0x1a0c], eax
je 0x100ab27b
addss xmm1, dword [ebx + 0x1a08]
movss dword [ebx + 0x1a08], xmm1
mov dword [ebx + 0x1a00], eax
mov eax, dword [ebx + 0x1a0c]
mov dword [ebx + 0x19f8], 0
mov byte [ebx + 0x19fc], 0
cmp dword [ebx + 0x1a14], eax
je 0x100ab2b1
cmp dword [ebx + 0x1a10], eax
jne 0x100ab2b1
test eax, eax
je 0x100ab2b1
call fcn.100a2230
mov ecx, dword [ebx + 0x1a0c]
test ecx, ecx
je 0x100ab2d0
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x1a18]
movss dword [ebx + 0x1a18], xmm0
mov eax, dword [ebx + 0x1a34]
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x1a44]
mov dword [ebx + 0x1a38], eax
mov al, byte [ebx + 0x1a1f]
mov byte [ebx + 0x1a21], al
mov eax, dword [ebx + 0x2ce0]
movss dword [ebx + 0x1a44], xmm0
mov dword [ebx + 0x1a10], ecx
mov dword [ebx + 0x1a14], 0
mov byte [ebx + 0x1a20], 0
mov byte [ebx + 0x1a1c], 0
test eax, eax
je 0x100ab333
cmp ecx, eax
je 0x100ab333
mov dword [ebx + 0x2ce0], 0
mov eax, dword [ebx + 0x1dbc]
lea edi, [ebx + 0xc50]
movss xmm2, dword [0x101bc23c]
mov ecx, 0x200
mov dword [ebx + 0x1dc0], eax
lea eax, [ebx + 0x450]
mov esi, eax
mov dword [ebx + 0x1dbc], 0
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1db8], 0x7f7fffff
xor ecx, ecx
mov byte [ebx + 0x1d59], 0
nop dword [eax]
cmp byte [ebx + ecx + 0xfc], 0
je 0x100ab3a2
movss xmm0, dword [eax]
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x100ab39b
xorps xmm0, xmm0
jmp 0x100ab3a5
addss xmm0, dword [ebx + 0x18]
jmp 0x100ab3a5
movaps xmm0, xmm2
movss dword [eax], xmm0
inc ecx
add eax, 4
cmp ecx, 0x200
jl 0x100ab380
call fcn.100a8d00
call fcn.100af420
mov eax, dword [ebx + 0x2f68]
mov ecx, 0x78
movss xmm1, dword [ebx + 0x18]
xorps xmm2, xmm2
movaps xmm0, xmm1
subss xmm0, dword [ebx + eax*4 + 0x2d88]
addss xmm0, dword [ebx + 0x2f6c]
movss dword [ebx + 0x2f6c], xmm0
movss dword [ebx + eax*4 + 0x2d88], xmm1
mov eax, dword [ebx + 0x2f68]
inc eax
movss xmm0, dword [ebx + 0x2f6c]
cdq
idiv ecx
comiss xmm0, xmm2
mov dword [ebx + 0x2f68], edx
jbe 0x100ab42a
divss xmm0, dword [0x10217f7c]
movss xmm1, dword [0x101bc1dc]
divss xmm1, xmm0
jmp 0x100ab432
movss xmm1, dword [0x10217f88]
movss dword [ebx + 0x35c], xmm1
mov esi, dword [0x105d76c8]
mov edx, dword [esi + 0x1a50]
test edx, edx
je 0x100ab539
mov eax, dword [esi + 0x1a0c]
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x100ab469
mov byte [esi + 0x1a20], 1
cmp byte [esi + 0xe8], 0
mov edx, dword [edx + 0x2e8]
je 0x100ab528
mov ecx, dword [0x105d76c8]
lea eax, [esi + 0xe0]
mov edi, eax
test eax, eax
jne 0x100ab494
lea edi, [ecx + 0xe0]
movss xmm0, dword [edi]
movss xmm1, dword [0x10217fa0]
comiss xmm0, xmm1
movss xmm3, dword [edi + 4]
jb 0x100ab528
comiss xmm3, xmm1
jb 0x100ab528
movss xmm1, dword [eax]
subss xmm1, dword [esi + 0x1a2c]
movss xmm0, dword [edx + 0xc]
movss xmm3, dword [eax + 4]
subss xmm3, dword [esi + 0x1a30]
ucomiss xmm0, xmm1
movss dword [ebp - 8], xmm1
movss dword [ebp - 4], xmm3
lahf
test ah, 0x44
jp 0x100ab4ee
movss xmm0, dword [edx + 0x10]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x100ab518
test dword [edx + 8], 0x100
jne 0x100ab509
comiss xmm2, dword [ecx + 0x2d34]
jb 0x100ab509
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2d34], eax
push 1
lea eax, [ebp - 8]
push eax
push edx
call fcn.100ae330
add esp, 0xc
push dword [esi + 0x1a50]
call fcn.100a51f0
add esp, 4
jmp 0x100ab571
call fcn.100a2230
mov dword [esi + 0x1a50], 0
jmp 0x100ab571
mov ecx, dword [esi + 0x1a34]
test ecx, ecx
je 0x100ab571
mov eax, dword [esi + 0x1a0c]
cmp dword [ecx + 0x50], eax
jne 0x100ab571
mov dword [esi + 0x1a14], eax
cmp dword [esi + 0x1a10], eax
jne 0x100ab563
mov byte [esi + 0x1a20], 1
cmp byte [esi + 0xe8], 0
jne 0x100ab571
call fcn.100a2230
call fcn.100ae8d0
mov eax, dword [0x105d76c8]
mov edx, dword [eax + 0x1a78]
sub edx, 1
js 0x100ab5ac
mov eax, dword [eax + 0x1a80]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
mov ecx, dword [eax]
test ecx, ecx
je 0x100ab5a4
test dword [ecx + 8], 0x8000000
jne 0x100ab5c5
sub eax, 0x24
sub edx, 1
jns 0x100ab595
cmp dword [ebx + 0x1b3c], 0
xorps xmm1, xmm1
je 0x100ab5e4
movss xmm0, dword [ebx + 0x1b4c]
comiss xmm0, xmm1
jbe 0x100ab5e4
movss xmm2, dword [ebx + 0x18]
mulss xmm2, dword [0x101bd430]
addss xmm2, dword [ebx + 0x1c68]
minss xmm2, dword [0x101bc1dc]
jmp 0x100ab601
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x101bc1f4]
movss xmm2, dword [ebx + 0x1c68]
subss xmm2, xmm0
maxss xmm2, xmm1
movss dword [ebx + 0x1c68], xmm2
mov dword [ebx + 0x1d54], 0
mov dword [ebx + 0x2f78], 0xffffffff
mov dword [ebx + 0x2f74], 0xffffffff
mov dword [ebx + 0x2f70], 0xffffffff
mov dword [ebx + 0x2d20], 0x3f800000
mov dword [ebx + 0x2d24], 0x3f800000
call fcn.100af900
mov eax, dword [ebx + 0x1afc]
test eax, eax
je 0x100ab71d
cmp byte [eax + 0x7a], 0
je 0x100ab71d
test dword [eax + 8], 0x40000
jne 0x100ab71d
cmp byte [ebx + 0xf8], 0
jne 0x100ab71d
mov ecx, dword [0x105d76c8]
mov eax, dword [ecx + 0x34]
test eax, eax
js 0x100ab71d
movss xmm1, dword [ecx + eax*4 + 0x450]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x100ab6a6
mov al, 1
jmp 0x100ab715
movss xmm2, dword [ecx + 0x88]
comiss xmm1, xmm2
jbe 0x100ab713
movss xmm3, dword [ecx + 0x8c]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x100ab6d0
mov eax, 1
test eax, eax
setg al
jmp 0x100ab715
comiss xmm2, xmm1
jae 0x100ab70a
comiss xmm0, xmm3
jae 0x100ab70a
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [ecx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
test eax, eax
setg al
jmp 0x100ab715
xor eax, eax
test eax, eax
setg al
jmp 0x100ab715
xor al, al
test al, al
je 0x100ab71d
mov al, 1
jmp 0x100ab71f
xor al, al
cmp dword [ebx + 0x1a0c], 0
mov byte [ebx + 0x1c20], al
jne 0x100ab789
test al, al
je 0x100ab789
cmp dword [ebx + 0x1b00], 0
mov eax, dword [ebx + 0x1afc]
mov dword [ebx + 0x1c0c], eax
mov dword [ebx + 0x1c18], 0x7fffffff
je 0x100ab778
mov eax, dword [ebx + 0x1b58]
cmp eax, 0x7fffffff
je 0x100ab778
xor edx, edx
mov ecx, 2
cmp byte [ebx + 0xf9], dl
cmovne ecx, edx
add ecx, eax
mov dword [ebx + 0x1c1c], ecx
jmp 0x100ab789
movzx eax, byte [ebx + 0xf9]
neg eax
sbb eax, eax
mov dword [ebx + 0x1c1c], eax
mov esi, dword [ebx + 0x1c0c]
mov dword [ebx + 0x1c08], 0
mov dword [ebx + 0x1c14], 0x7fffffff
mov dword [ebx + 0x1c10], 0x7fffffff
test esi, esi
je 0x100ab81d
mov eax, dword [ebx + 0x1c18]
mov dword [ebx + 0x1c08], esi
cmp eax, 0x7fffffff
je 0x100ab7db
mov ecx, dword [esi + 0x164]
cmp ecx, 0xffffffff
je 0x100ab7db
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [ebx + 0x1c10], edx
mov eax, dword [ebx + 0x1c1c]
cmp eax, 0x7fffffff
je 0x100ab7ff
mov ecx, dword [esi + 0x168]
cmp ecx, 0xffffffff
je 0x100ab7ff
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [ebx + 0x1c14], edx
mov dword [ebx + 0x1c0c], 0
mov dword [ebx + 0x1c1c], 0x7fffffff
mov dword [ebx + 0x1c18], 0x7fffffff
xor edx, edx
mov dword [ebx + 0x1b58], 0x7fffffff
cmp dword [ebx + 0x19ac], edx
je 0x100ab858
mov eax, dword [ebx + 0x19b4]
mov ecx, dword [eax + edx*4]
inc edx
mov al, byte [ecx + 0x7a]
mov byte [ecx + 0x7b], al
xor eax, eax
mov word [ecx + 0x84], ax
mov byte [ecx + 0x7a], al
mov byte [ecx + 0x7c], al
cmp edx, dword [ebx + 0x19ac]
jne 0x100ab831
mov eax, dword [ebx + 0x1afc]
test eax, eax
je 0x100ab8d0
cmp byte [eax + 0x7b], 0
jne 0x100ab8d0
mov eax, dword [0x105d76c8]
mov edi, dword [eax + 0x19b8]
sub edi, 1
js 0x100ab8d0
mov eax, dword [eax + 0x19c0]
lea eax, [eax + edi*4]
mov dword [ebp - 4], eax
mov esi, dword [eax]
test esi, esi
je 0x100ab8af
cmp byte [esi + 0x7b], 0
je 0x100ab8af
mov eax, dword [esi + 8]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [esi + 8], 0x18
setae al
test al, cl
jne 0x100ab8bc
mov eax, dword [ebp - 4]
sub eax, 4
sub edi, 1
mov dword [ebp - 4], eax
jns 0x100ab884
jmp 0x100ab8d0
mov eax, dword [esi + 0x2f4]
test eax, eax
cmovne esi, eax
push esi
call fcn.100a51f0
add esp, 4
mov ecx, dword [ebx + 0x19d4]
pop edi
test ecx, ecx
jns 0x100ab8f7
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x19d0]
call fcn.100b0260
mov dword [ebx + 0x19d0], 0
mov ecx, dword [ebx + 0x1a88]
test ecx, ecx
jns 0x100ab927
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x1a84]
call fcn.100b0380
mov dword [ebx + 0x1a84], 0
push dword [ebx + 0x1afc]
call fcn.100a24a0
mov eax, dword [0x105d76c8]
push 0
push 0
push str.DebugDefault
mov dword [eax + 0x1abc], 0x43c80000
mov dword [eax + 0x1ac0], 0x43c80000
mov dword [eax + 0x1a94], 4
call fcn.1008dff0
add esp, 0x10
mov byte [ebx + 2], 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret