Function at 0x1001ae50
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [0x1022b1c0]
push esi
push edi
cmp byte [ebx + 0xb3], 0
je 0x1001ae75
test byte [ebx + 0xc], 2
jne 0x1001ae75
mov byte [ebx + 0xb3], 0
cmp byte [ebx + 0x2d34], 0
jne 0x1001af84
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1001af7d
push 0x10166690
push eax
call fcn.10015e90
mov esi, eax
add esp, 8
test esi, esi
je 0x1001af7d
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
push esi
call edi
add esp, 4
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x1001af73
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 0x1001af73
push esi
call edi
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
je 0x1001af73
push 0
push dword [ebp - 8]
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x1001af73
mov eax, dword [0x1022b1c0]
test eax, eax
je 0x1001af09
inc dword [eax + 0x374]
push dword [0x1022b1e0]
push edi
call dword [0x101be1f8]
mov edi, eax
add esp, 8
test edi, edi
je 0x1001af73
push esi
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 0x1001af5f
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [0x1022b1c0]
test eax, eax
je 0x1001af4d
dec dword [eax + 0x374]
push dword [0x1022b1e0]
push edi
call dword [0x101be1fc]
add esp, 8
jmp 0x1001af7d
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
push dword [ebp - 4]
push edi
call fcn.10017a00
add esp, 0xc
jmp 0x1001af3e
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov byte [ebx + 0x2d34], 1
movss xmm0, dword [ebx + 0x2d38]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1001afc9
subss xmm0, dword [ebx + 0x18]
comiss xmm1, xmm0
movss dword [ebx + 0x2d38], xmm0
jb 0x1001afc9
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1001afb8
push eax
call fcn.1001e280
add esp, 4
jmp 0x1001afbf
mov byte [ebx + 0x35c], 1
mov dword [ebx + 0x2d38], 0
movss xmm0, dword [ebx + 0x18]
mov eax, dword [ebx + 0x98]
inc dword [ebx + 0x1960]
cvtps2pd xmm0, xmm0
mov byte [ebx + 0x196c], 1
mov dword [ebx + 0x2d10], 0
mov dword [ebx + 0x19ac], 0
addsd xmm0, qword [ebx + 0x1958]
movsd qword [ebx + 0x1958], xmm0
mov byte [eax], 1
mov ecx, dword [0x1022b1c0]
mov eax, dword [ecx + 0xa4]
test eax, eax
jne 0x1001b026
mov eax, dword [ecx + 0x98]
mov eax, dword [eax + 0x44]
mov eax, dword [eax]
push eax
call fcn.1001e700
movss xmm0, dword [ebx + 0x10]
add esp, 4
movss xmm1, dword [ebx + 0x14]
mov eax, dword [ebx + 0x15bc]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
movss dword [ebp - 0xc], xmm0
movss dword [ebp - 8], xmm1
movups xmm0, xmmword [ebp - 0x14]
mov dword [ebx + 0x18dc], eax
xor eax, eax
mov dword [ebx + 0x18f0], 0
movups xmmword [ebx + 0x18e0], xmm0
cmp byte [ebx + 0x15b8], al
je 0x1001b08b
mov dword [ebx + 0x18f0], 1
mov eax, 1
cmp byte [ebx + 0x15b9], 0
je 0x1001b09d
or eax, 2
mov dword [ebx + 0x18f0], eax
test byte [ebx + 0xc], 8
je 0x1001b0ac
or eax, 4
mov dword [ebx + 0x18f0], eax
lea ecx, [ebx + 0x1c48]
call fcn.10023fb0
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1c48]
push dword [eax + 8]
call fcn.10027010
lea ecx, [ebx + 0x1c48]
call fcn.10026f40
lea ecx, [ebx + 0x1cc0]
call fcn.10023fb0
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1cc0]
push dword [eax + 8]
call fcn.10027010
lea ecx, [ebx + 0x1cc0]
call fcn.10026f40
mov byte [ebx + 0x1c00], 0
mov dword [ebx + 0x1c04], 0
mov dword [ebx + 0x1c0c], 0
mov dword [ebx + 0x1c10], 0
mov dword [ebx + 0x1c08], 0
mov dword [ebx + 0x1c24], 0
mov dword [ebx + 0x1c28], 0
mov dword [ebx + 0x1c1c], 0
mov dword [ebx + 0x1c20], 0
mov dword [ebx + 0x1c14], 0
mov dword [ebx + 0x1c18], 0
cmp byte [ebx + 0x1d3c], 0
je 0x1001b1a5
mov eax, dword [ebx + 0x1d54]
cmp eax, dword [ebx + 0x19ec]
jne 0x1001b1a5
mov ecx, dword [0x1022b1c0]
cmp dword [ecx + 0x19ec], eax
jne 0x1001b196
mov dword [ecx + 0x19f0], eax
cmp dword [ecx + 0x1a20], eax
jne 0x1001b1a5
mov byte [ecx + 0x1a24], 1
cmp dword [ebx + 0x19e0], 0
jne 0x1001b1ba
mov dword [ebx + 0x19e4], 0
jmp 0x1001b1cc
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x1001b1d6
cmp dword [ebx + 0x19ec], eax
jne 0x1001b1d6
mov dword [ebx + 0x19e8], 0
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x1001b212
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x19e4]
movss dword [ebx + 0x19e4], xmm0
cmp dword [ebx + 0x19ec], eax
je 0x1001b212
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x19e8]
movss dword [ebx + 0x19e8], xmm0
mov dword [ebx + 0x19e0], eax
mov eax, dword [ebx + 0x19ec]
mov dword [ebx + 0x19d8], 0
mov byte [ebx + 0x19dc], 0
cmp dword [ebx + 0x19f0], eax
je 0x1001b24f
cmp dword [ebx + 0x1a20], eax
jne 0x1001b24f
test eax, eax
je 0x1001b24f
push 0
push 0
call fcn.1001e560
add esp, 8
mov ecx, dword [ebx + 0x19ec]
test ecx, ecx
je 0x1001b26e
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x19f4]
movss dword [ebx + 0x19f4], xmm0
mov eax, dword [ebx + 0x1a18]
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x1a30]
mov dword [ebx + 0x1a28], eax
mov al, byte [ebx + 0x19fb]
mov byte [ebx + 0x1a25], al
mov eax, dword [ebx + 0x2cd8]
movss dword [ebx + 0x1a30], xmm0
mov dword [ebx + 0x1a20], ecx
mov dword [ebx + 0x19f0], 0
mov byte [ebx + 0x19fc], 0
mov byte [ebx + 0x1a24], 0
mov byte [ebx + 0x19f8], 0
test eax, eax
je 0x1001b2d8
cmp ecx, eax
je 0x1001b2d8
mov dword [ebx + 0x2cd8], 0
test ecx, ecx
jne 0x1001b2f4
mov dword [ebx + 0x1a04], ecx
mov dword [ebx + 0x1a00], ecx
mov dword [ebx + 0x1a08], ecx
mov dword [ebx + 0x1a0c], ecx
mov eax, dword [ebx + 0x1da0]
lea edx, [ebx + 0x458]
movss xmm0, dword [0x101667d0]
lea edi, [ebx + 0xc58]
mov ecx, 0x200
mov dword [ebx + 0x1da4], eax
mov esi, edx
mov dword [ebx + 0x1da0], 0
movss dword [ebp - 4], xmm0
xor eax, eax
mov dword [ebx + 0x1d9c], 0x7f7fffff
mov byte [ebx + 0x1d3d], 0
rep movsd dword es:[edi], dword [esi]
nop
cmp byte [ebx + eax + 0x104], 0
je 0x1001b362
movss xmm0, dword [edx]
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001b35b
xorps xmm0, xmm0
jmp 0x1001b36a
addss xmm0, dword [ebx + 0x18]
jmp 0x1001b36a
movss xmm0, dword [0x101667dc]
movss dword [edx], xmm0
inc eax
add edx, 4
cmp eax, 0x200
jl 0x1001b340
call fcn.10018c30
call fcn.1001fbd0
mov ecx, dword [ebx + 0x2f74]
movss xmm0, dword [ebx + 0x18]
mov eax, dword [ebx + 0x18]
subss xmm0, dword [ebx + ecx*4 + 0x2d94]
addss xmm0, dword [ebx + 0x2f78]
movss dword [ebx + 0x2f78], xmm0
mov dword [ebx + ecx*4 + 0x2d94], eax
mov ecx, 0x78
mov eax, dword [ebx + 0x2f74]
inc eax
movss xmm0, dword [ebx + 0x2f78]
cdq
idiv ecx
comiss xmm0, dword [0x10166708]
mov dword [ebx + 0x2f74], edx
jbe 0x1001b3ed
divss xmm0, dword [0x101667b4]
movss xmm1, dword [0x10166760]
divss xmm1, xmm0
jmp 0x1001b3f2
movss xmm1, dword [ebp - 4]
movss dword [ebx + 0x360], xmm1
call fcn.1001f030
mov esi, dword [0x1022b1c0]
mov edx, dword [esi + 0x19bc]
test edx, edx
je 0x1001b50d
mov eax, dword [esi + 0x19ec]
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x1001b42e
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
mov edx, dword [edx + 0x304]
je 0x1001b4f8
mov ecx, dword [0x1022b1c0]
lea eax, [esi + 0xe8]
mov edi, eax
test eax, eax
jne 0x1001b459
lea edi, [ecx + 0xe8]
movss xmm0, dword [edi]
movss xmm1, dword [0x101667f0]
comiss xmm0, xmm1
movss xmm2, dword [edi + 4]
jb 0x1001b4f8
comiss xmm2, xmm1
jb 0x1001b4f8
movss xmm1, dword [eax]
subss xmm1, dword [esi + 0x1a10]
movss xmm0, dword [edx + 0xc]
movss xmm2, dword [eax + 4]
subss xmm2, dword [esi + 0x1a14]
ucomiss xmm0, xmm1
movss dword [ebp - 0xc], xmm1
movss dword [ebp - 8], xmm2
lahf
test ah, 0x44
jp 0x1001b4bb
movss xmm0, dword [edx + 0x10]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1001b4e8
test dword [edx + 8], 0x100
jne 0x1001b4d9
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x2d38]
jb 0x1001b4d9
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2d38], eax
push 1
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.1001ed60
add esp, 0xc
push dword [esi + 0x19bc]
call fcn.10014b50
add esp, 4
jmp 0x1001b54c
push 0
push 0
call fcn.1001e560
mov dword [esi + 0x19bc], 0
jmp 0x1001b549
mov ecx, dword [esi + 0x1a18]
test ecx, ecx
je 0x1001b54c
mov eax, dword [esi + 0x19ec]
cmp dword [ecx + 0x48], eax
jne 0x1001b54c
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x1001b537
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
jne 0x1001b54c
push 0
push 0
call fcn.1001e560
add esp, 8
mov eax, dword [0x1022b1c0]
mov edx, dword [eax + 0x1ac0]
sub edx, 1
js 0x1001b587
mov eax, dword [eax + 0x1ac8]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
nop dword [eax + eax]
mov ecx, dword [eax]
test ecx, ecx
je 0x1001b57f
test dword [ecx + 8], 0x8000000
jne 0x1001b5a1
sub eax, 0x24
sub edx, 1
jns 0x1001b570
cmp dword [ebx + 0x1b18], 0
je 0x1001b5c0
movss xmm0, dword [ebx + 0x1b28]
comiss xmm0, dword [0x10166708]
jbe 0x1001b5c0
movss xmm1, dword [ebx + 0x18]
mulss xmm1, dword [0x1016678c]
addss xmm1, dword [ebx + 0x1c44]
minss xmm1, dword [0x10166760]
jmp 0x1001b5e1
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x10166794]
movss xmm1, dword [ebx + 0x1c44]
subss xmm1, xmm0
maxss xmm1, dword [0x10166708]
movss dword [ebx + 0x1c44], xmm1
mov dword [ebx + 0x1d38], 0
mov dword [ebx + 0x2f84], 0xffffffff
mov dword [ebx + 0x2f80], 0xffffffff
mov dword [ebx + 0x2f7c], 0xffffffff
mov dword [ebx + 0x2d24], 0x3f800000
mov dword [ebx + 0x2d28], 0x3f800000
call fcn.10020120
mov esi, dword [ebx + 0x1be8]
mov byte [ebx + 0x1bfc], 0
mov dword [ebx + 0x1be4], 0
mov dword [ebx + 0x1bf0], 0x7fffffff
mov dword [ebx + 0x1bec], 0x7fffffff
test esi, esi
je 0x1001b6c5
mov eax, dword [ebx + 0x1bf4]
mov dword [ebx + 0x1be4], esi
cmp eax, 0x7fffffff
je 0x1001b683
mov ecx, dword [esi + 0x174]
cmp ecx, 0xffffffff
je 0x1001b683
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [ebx + 0x1bec], edx
mov eax, dword [ebx + 0x1bf8]
cmp eax, 0x7fffffff
je 0x1001b6a7
mov ecx, dword [esi + 0x178]
cmp ecx, 0xffffffff
je 0x1001b6a7
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [ebx + 0x1bf0], edx
mov dword [ebx + 0x1be8], 0
mov dword [ebx + 0x1bf8], 0x7fffffff
mov dword [ebx + 0x1bf4], 0x7fffffff
movss xmm0, dword [ebx + 0xb8]
comiss xmm0, dword [0x10166708]
mov dword [ebx + 0x1b34], 0x7fffffff
jb 0x1001b6fb
movsd xmm0, qword [ebx + 0x1958]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [ebx + 0xb8]
movss dword [ebp - 4], xmm0
jmp 0x1001b700
movss xmm0, dword [ebp - 4]
xor esi, esi
cmp dword [ebx + 0x1970], esi
je 0x1001b766
nop word [eax + eax]
mov eax, dword [ebx + 0x1978]
xor edx, edx
mov ecx, dword [eax + esi*4]
mov al, byte [ecx + 0x8a]
mov byte [ecx + 0x8b], al
mov word [ecx + 0x94], dx
mov byte [ecx + 0x8a], dl
mov byte [ecx + 0x8c], dl
test al, al
jne 0x1001b758
cmp byte [ecx + 0x33c], dl
jne 0x1001b758
comiss xmm0, dword [ecx + 0x238]
jbe 0x1001b758
push ecx
call fcn.10014da0
add esp, 4
movss xmm0, dword [ebp - 4]
inc esi
cmp esi, dword [ebx + 0x1970]
jne 0x1001b710
mov eax, dword [ebx + 0x1ad8]
test eax, eax
je 0x1001b785
cmp byte [eax + 0x8b], 0
jne 0x1001b785
push 0
push 0
call fcn.10014aa0
add esp, 8
mov ecx, dword [ebx + 0x1998]
test ecx, ecx
jns 0x1001b7ab
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 + 0x1994]
call fcn.10021010
mov dword [ebx + 0x1994], 0
mov ecx, dword [ebx + 0x1ad0]
test ecx, ecx
jns 0x1001b7db
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 + 0x1acc]
call fcn.100210a0
mov dword [ebx + 0x1acc], 0
push 0
push dword [ebx + 0x1ad8]
call fcn.10012fb0
mov edi, dword [0x1022b1c0]
add esp, 8
cmp byte [edi + 0x2d8c], 0
mov dword [edi + 0x2d90], 0
je 0x1001b8da
mov eax, dword [0x1022b1c0]
mov ecx, dword [edi + 0x19e0]
mov dword [ebp - 4], ecx
mov dword [eax + 0x1d38], 7
mov esi, dword [0x1022b1c0]
mov eax, dword [esi + 0x6c]
test eax, eax
js 0x1001b856
push 1
push eax
call fcn.100171b0
mov ecx, dword [ebp - 4]
add esp, 8
test al, al
je 0x1001b856
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x1022b1c0]
movss xmm0, dword [esi + 0x3f4]
ucomiss xmm0, dword [0x10166708]
lahf
test ah, 0x44
jp 0x1001b882
test ecx, ecx
je 0x1001b882
mov dword [edi + 0x2d90], ecx
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x1022b1c0]
or dword [esi + 0x1a34], 0x40
mov dword [esi + 0x1a80], 0x3f19999a
call fcn.10012060
mov esi, dword [ebp - 4]
push esi
push str.HoveredId:_0x_08X
call fcn.10043540
push str.Press_ESC_to_abort_picking.
call fcn.10043540
mov ecx, 0x15d0
test esi, esi
mov eax, 0x15c0
cmove eax, ecx
add eax, dword [0x1022b1c0]
push str.Click_to_break_in_debugger_
push eax
call fcn.10043560
push 0
call fcn.100138d0
add esp, 0x18
mov eax, dword [0x1022b1c0]
movss xmm0, dword [0x101667c0]
push 0
push 0
or dword [eax + 0x1a34], 2
push str.DebugDefault
movss dword [eax + 0x1a54], xmm0
movss dword [eax + 0x1a58], xmm0
mov dword [eax + 0x1a3c], 4
call fcn.1000f0a0
add esp, 0xc
mov byte [ebx + 0x196d], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret