Function at 0x10018f70
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [0x1024c260]
push esi
push edi
cmp byte [ebx + 0xb3], 0
je 0x10018f95
test byte [ebx + 0xc], 2
jne 0x10018f95
mov byte [ebx + 0xb3], 0
cmp byte [ebx + 0x2d34], 0
jne 0x100190a4
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1001909d
push 0x1016758c
push eax
call fcn.10013f40
mov esi, eax
add esp, 8
test esi, esi
je 0x1001909d
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 0x10019093
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 0x10019093
push esi
call edi
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
je 0x10019093
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 0x10019093
mov eax, dword [0x1024c260]
test eax, eax
je 0x10019029
inc dword [eax + 0x374]
push dword [0x1024c280]
push edi
call dword [0x1018c1f8]
mov edi, eax
add esp, 8
test edi, edi
je 0x10019093
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 0x1001907f
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [0x1024c260]
test eax, eax
je 0x1001906d
dec dword [eax + 0x374]
push dword [0x1024c280]
push edi
call dword [0x1018c1fc]
add esp, 8
jmp 0x1001909d
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
push dword [ebp - 4]
push edi
call fcn.10015b10
add esp, 0xc
jmp 0x1001905e
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 0x100190e9
subss xmm0, dword [ebx + 0x18]
comiss xmm1, xmm0
movss dword [ebx + 0x2d38], xmm0
jb 0x100190e9
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x100190d8
push eax
call fcn.1001c630
add esp, 4
jmp 0x100190df
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 [0x1024c260]
mov eax, dword [ecx + 0xa4]
test eax, eax
jne 0x10019146
mov eax, dword [ecx + 0x98]
mov eax, dword [eax + 0x44]
mov eax, dword [eax]
push eax
call fcn.1001cab0
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 0x100191ab
mov dword [ebx + 0x18f0], 1
mov eax, 1
cmp byte [ebx + 0x15b9], 0
je 0x100191bd
or eax, 2
mov dword [ebx + 0x18f0], eax
test byte [ebx + 0xc], 8
je 0x100191cc
or eax, 4
mov dword [ebx + 0x18f0], eax
lea ecx, [ebx + 0x1c48]
call fcn.10022a40
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1c48]
push dword [eax + 8]
call fcn.100258b0
lea ecx, [ebx + 0x1c48]
call fcn.100257e0
lea ecx, [ebx + 0x1cc0]
call fcn.10022a40
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1cc0]
push dword [eax + 8]
call fcn.100258b0
lea ecx, [ebx + 0x1cc0]
call fcn.100257e0
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 0x100192c5
mov eax, dword [ebx + 0x1d54]
cmp eax, dword [ebx + 0x19ec]
jne 0x100192c5
mov ecx, dword [0x1024c260]
cmp dword [ecx + 0x19ec], eax
jne 0x100192b6
mov dword [ecx + 0x19f0], eax
cmp dword [ecx + 0x1a20], eax
jne 0x100192c5
mov byte [ecx + 0x1a24], 1
cmp dword [ebx + 0x19e0], 0
jne 0x100192da
mov dword [ebx + 0x19e4], 0
jmp 0x100192ec
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x100192f6
cmp dword [ebx + 0x19ec], eax
jne 0x100192f6
mov dword [ebx + 0x19e8], 0
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x10019332
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x19e4]
movss dword [ebx + 0x19e4], xmm0
cmp dword [ebx + 0x19ec], eax
je 0x10019332
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 0x1001936f
cmp dword [ebx + 0x1a20], eax
jne 0x1001936f
test eax, eax
je 0x1001936f
push 0
push 0
call fcn.1001c910
add esp, 8
mov ecx, dword [ebx + 0x19ec]
test ecx, ecx
je 0x1001938e
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 0x100193f8
cmp ecx, eax
je 0x100193f8
mov dword [ebx + 0x2cd8], 0
test ecx, ecx
jne 0x10019414
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 [0x101676c8]
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 0x10019482
movss xmm0, dword [edx]
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001947b
xorps xmm0, xmm0
jmp 0x1001948a
addss xmm0, dword [ebx + 0x18]
jmp 0x1001948a
movss xmm0, dword [0x101676d4]
movss dword [edx], xmm0
inc eax
add edx, 4
cmp eax, 0x200
jl 0x10019460
call fcn.10016d40
call fcn.1001e1a0
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 [0x10167600]
mov dword [ebx + 0x2f74], edx
jbe 0x1001950d
divss xmm0, dword [0x101676ac]
movss xmm1, dword [0x10167658]
divss xmm1, xmm0
jmp 0x10019512
movss xmm1, dword [ebp - 4]
movss dword [ebx + 0x360], xmm1
call fcn.1001d600
mov esi, dword [0x1024c260]
mov edx, dword [esi + 0x19bc]
test edx, edx
je 0x1001962d
mov eax, dword [esi + 0x19ec]
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x1001954e
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
mov edx, dword [edx + 0x304]
je 0x10019618
mov ecx, dword [0x1024c260]
lea eax, [esi + 0xe8]
mov edi, eax
test eax, eax
jne 0x10019579
lea edi, [ecx + 0xe8]
movss xmm0, dword [edi]
movss xmm1, dword [0x101676e8]
comiss xmm0, xmm1
movss xmm2, dword [edi + 4]
jb 0x10019618
comiss xmm2, xmm1
jb 0x10019618
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 0x100195db
movss xmm0, dword [edx + 0x10]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x10019608
test dword [edx + 8], 0x100
jne 0x100195f9
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x2d38]
jb 0x100195f9
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2d38], eax
push 1
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.1001d220
add esp, 0xc
push dword [esi + 0x19bc]
call fcn.10012d10
add esp, 4
jmp 0x1001966c
push 0
push 0
call fcn.1001c910
mov dword [esi + 0x19bc], 0
jmp 0x10019669
mov ecx, dword [esi + 0x1a18]
test ecx, ecx
je 0x1001966c
mov eax, dword [esi + 0x19ec]
cmp dword [ecx + 0x48], eax
jne 0x1001966c
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x10019657
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
jne 0x1001966c
push 0
push 0
call fcn.1001c910
add esp, 8
mov eax, dword [0x1024c260]
mov edx, dword [eax + 0x1ac0]
sub edx, 1
js 0x100196a7
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 0x1001969f
test dword [ecx + 8], 0x8000000
jne 0x100196c1
sub eax, 0x24
sub edx, 1
jns 0x10019690
cmp dword [ebx + 0x1b18], 0
je 0x100196e0
movss xmm0, dword [ebx + 0x1b28]
comiss xmm0, dword [0x10167600]
jbe 0x100196e0
movss xmm1, dword [ebx + 0x18]
mulss xmm1, dword [0x10167684]
addss xmm1, dword [ebx + 0x1c44]
minss xmm1, dword [0x10167658]
jmp 0x10019701
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x1016768c]
movss xmm1, dword [ebx + 0x1c44]
subss xmm1, xmm0
maxss xmm1, dword [0x10167600]
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.1001e6f0
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 0x100197e5
mov eax, dword [ebx + 0x1bf4]
mov dword [ebx + 0x1be4], esi
cmp eax, 0x7fffffff
je 0x100197a3
mov ecx, dword [esi + 0x174]
cmp ecx, 0xffffffff
je 0x100197a3
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [ebx + 0x1bec], edx
mov eax, dword [ebx + 0x1bf8]
cmp eax, 0x7fffffff
je 0x100197c7
mov ecx, dword [esi + 0x178]
cmp ecx, 0xffffffff
je 0x100197c7
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 [0x10167600]
mov dword [ebx + 0x1b34], 0x7fffffff
jb 0x1001981b
movsd xmm0, qword [ebx + 0x1958]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [ebx + 0xb8]
movss dword [ebp - 4], xmm0
jmp 0x10019820
movss xmm0, dword [ebp - 4]
xor esi, esi
cmp dword [ebx + 0x1970], esi
je 0x10019886
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 0x10019878
cmp byte [ecx + 0x33c], dl
jne 0x10019878
comiss xmm0, dword [ecx + 0x238]
jbe 0x10019878
push ecx
call fcn.10012f60
add esp, 4
movss xmm0, dword [ebp - 4]
inc esi
cmp esi, dword [ebx + 0x1970]
jne 0x10019830
mov eax, dword [ebx + 0x1ad8]
test eax, eax
je 0x100198a5
cmp byte [eax + 0x8b], 0
jne 0x100198a5
push 0
push 0
call fcn.10012c60
add esp, 8
mov ecx, dword [ebx + 0x1998]
test ecx, ecx
jns 0x100198cb
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.1001f5e0
mov dword [ebx + 0x1994], 0
mov ecx, dword [ebx + 0x1ad0]
test ecx, ecx
jns 0x100198fb
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.1001f670
mov dword [ebx + 0x1acc], 0
push 0
push dword [ebx + 0x1ad8]
call fcn.10011240
mov edi, dword [0x1024c260]
add esp, 8
cmp byte [edi + 0x2d8c], 0
mov dword [edi + 0x2d90], 0
je 0x100199fa
mov eax, dword [0x1024c260]
mov ecx, dword [edi + 0x19e0]
mov dword [ebp - 4], ecx
mov dword [eax + 0x1d38], 7
mov esi, dword [0x1024c260]
mov eax, dword [esi + 0x6c]
test eax, eax
js 0x10019976
push 1
push eax
call fcn.10015240
mov ecx, dword [ebp - 4]
add esp, 8
test al, al
je 0x10019976
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x1024c260]
movss xmm0, dword [esi + 0x3f4]
ucomiss xmm0, dword [0x10167600]
lahf
test ah, 0x44
jp 0x100199a2
test ecx, ecx
je 0x100199a2
mov dword [edi + 0x2d90], ecx
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x1024c260]
or dword [esi + 0x1a34], 0x40
mov dword [esi + 0x1a80], 0x3f19999a
call fcn.100103b0
mov esi, dword [ebp - 4]
push esi
push str.HoveredId:_0x_08X
call fcn.10041d00
push str.Press_ESC_to_abort_picking.
call fcn.10041d00
mov ecx, 0x15d0
test esi, esi
mov eax, 0x15c0
cmove eax, ecx
add eax, dword [0x1024c260]
push str.Click_to_break_in_debugger_
push eax
call fcn.10041d20
push 0
call fcn.10011a90
add esp, 0x18
mov eax, dword [0x1024c260]
movss xmm0, dword [0x101676b8]
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.1000d230
add esp, 0xc
mov byte [ebx + 0x196d], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret