Function at 0x10019020
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [0x10273be0]
push esi
push edi
cmp byte [ebx + 0xb3], 0
je 0x10019045
test byte [ebx + 0xc], 2
jne 0x10019045
mov byte [ebx + 0xb3], 0
cmp byte [ebx + 0x2d34], 0
jne 0x10019154
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1001914d
push 0x1016a58c
push eax
call fcn.10014010
mov esi, eax
add esp, 8
test esi, esi
je 0x1001914d
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 0x10019143
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 0x10019143
push esi
call edi
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
je 0x10019143
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 0x10019143
mov eax, dword [0x10273be0]
test eax, eax
je 0x100190d9
inc dword [eax + 0x374]
push dword [0x10273c00]
push edi
call dword [0x101ac1f8]
mov edi, eax
add esp, 8
test edi, edi
je 0x10019143
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 0x1001912f
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [0x10273be0]
test eax, eax
je 0x1001911d
dec dword [eax + 0x374]
push dword [0x10273c00]
push edi
call dword [0x101ac1fc]
add esp, 8
jmp 0x1001914d
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
push dword [ebp - 4]
push edi
call fcn.10015bc0
add esp, 0xc
jmp 0x1001910e
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 0x10019199
subss xmm0, dword [ebx + 0x18]
comiss xmm1, xmm0
movss dword [ebx + 0x2d38], xmm0
jb 0x10019199
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x10019188
push eax
call fcn.1001c6e0
add esp, 4
jmp 0x1001918f
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 [0x10273be0]
mov eax, dword [ecx + 0xa4]
test eax, eax
jne 0x100191f6
mov eax, dword [ecx + 0x98]
mov eax, dword [eax + 0x44]
mov eax, dword [eax]
push eax
call fcn.1001cb60
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 0x1001925b
mov dword [ebx + 0x18f0], 1
mov eax, 1
cmp byte [ebx + 0x15b9], 0
je 0x1001926d
or eax, 2
mov dword [ebx + 0x18f0], eax
test byte [ebx + 0xc], 8
je 0x1001927c
or eax, 4
mov dword [ebx + 0x18f0], eax
lea ecx, [ebx + 0x1c48]
call fcn.10022aa0
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1c48]
push dword [eax + 8]
call fcn.10025920
lea ecx, [ebx + 0x1c48]
call fcn.10025850
lea ecx, [ebx + 0x1cc0]
call fcn.10022aa0
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1cc0]
push dword [eax + 8]
call fcn.10025920
lea ecx, [ebx + 0x1cc0]
call fcn.10025850
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 0x10019375
mov eax, dword [ebx + 0x1d54]
cmp eax, dword [ebx + 0x19ec]
jne 0x10019375
mov ecx, dword [0x10273be0]
cmp dword [ecx + 0x19ec], eax
jne 0x10019366
mov dword [ecx + 0x19f0], eax
cmp dword [ecx + 0x1a20], eax
jne 0x10019375
mov byte [ecx + 0x1a24], 1
cmp dword [ebx + 0x19e0], 0
jne 0x1001938a
mov dword [ebx + 0x19e4], 0
jmp 0x1001939c
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x100193a6
cmp dword [ebx + 0x19ec], eax
jne 0x100193a6
mov dword [ebx + 0x19e8], 0
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x100193e2
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x19e4]
movss dword [ebx + 0x19e4], xmm0
cmp dword [ebx + 0x19ec], eax
je 0x100193e2
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 0x1001941f
cmp dword [ebx + 0x1a20], eax
jne 0x1001941f
test eax, eax
je 0x1001941f
push 0
push 0
call fcn.1001c9c0
add esp, 8
mov ecx, dword [ebx + 0x19ec]
test ecx, ecx
je 0x1001943e
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 0x100194a8
cmp ecx, eax
je 0x100194a8
mov dword [ebx + 0x2cd8], 0
test ecx, ecx
jne 0x100194c4
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 [0x1016a6c8]
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 0x10019532
movss xmm0, dword [edx]
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001952b
xorps xmm0, xmm0
jmp 0x1001953a
addss xmm0, dword [ebx + 0x18]
jmp 0x1001953a
movss xmm0, dword [0x1016a6d4]
movss dword [edx], xmm0
inc eax
add edx, 4
cmp eax, 0x200
jl 0x10019510
call fcn.10016e00
call fcn.1001e200
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 [0x1016a600]
mov dword [ebx + 0x2f74], edx
jbe 0x100195bd
divss xmm0, dword [0x1016a6ac]
movss xmm1, dword [0x1016a658]
divss xmm1, xmm0
jmp 0x100195c2
movss xmm1, dword [ebp - 4]
movss dword [ebx + 0x360], xmm1
call fcn.1001d660
mov esi, dword [0x10273be0]
mov edx, dword [esi + 0x19bc]
test edx, edx
je 0x100196dd
mov eax, dword [esi + 0x19ec]
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x100195fe
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
mov edx, dword [edx + 0x304]
je 0x100196c8
mov ecx, dword [0x10273be0]
lea eax, [esi + 0xe8]
mov edi, eax
test eax, eax
jne 0x10019629
lea edi, [ecx + 0xe8]
movss xmm0, dword [edi]
movss xmm1, dword [0x1016a6e8]
comiss xmm0, xmm1
movss xmm2, dword [edi + 4]
jb 0x100196c8
comiss xmm2, xmm1
jb 0x100196c8
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 0x1001968b
movss xmm0, dword [edx + 0x10]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x100196b8
test dword [edx + 8], 0x100
jne 0x100196a9
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x2d38]
jb 0x100196a9
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2d38], eax
push 1
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.1001d280
add esp, 0xc
push dword [esi + 0x19bc]
call fcn.10012de0
add esp, 4
jmp 0x1001971c
push 0
push 0
call fcn.1001c9c0
mov dword [esi + 0x19bc], 0
jmp 0x10019719
mov ecx, dword [esi + 0x1a18]
test ecx, ecx
je 0x1001971c
mov eax, dword [esi + 0x19ec]
cmp dword [ecx + 0x48], eax
jne 0x1001971c
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x10019707
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
jne 0x1001971c
push 0
push 0
call fcn.1001c9c0
add esp, 8
mov eax, dword [0x10273be0]
mov edx, dword [eax + 0x1ac0]
sub edx, 1
js 0x10019757
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 0x1001974f
test dword [ecx + 8], 0x8000000
jne 0x10019771
sub eax, 0x24
sub edx, 1
jns 0x10019740
cmp dword [ebx + 0x1b18], 0
je 0x10019790
movss xmm0, dword [ebx + 0x1b28]
comiss xmm0, dword [0x1016a600]
jbe 0x10019790
movss xmm1, dword [ebx + 0x18]
mulss xmm1, dword [0x1016a684]
addss xmm1, dword [ebx + 0x1c44]
minss xmm1, dword [0x1016a658]
jmp 0x100197b1
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x1016a68c]
movss xmm1, dword [ebx + 0x1c44]
subss xmm1, xmm0
maxss xmm1, dword [0x1016a600]
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.1001e750
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 0x10019895
mov eax, dword [ebx + 0x1bf4]
mov dword [ebx + 0x1be4], esi
cmp eax, 0x7fffffff
je 0x10019853
mov ecx, dword [esi + 0x174]
cmp ecx, 0xffffffff
je 0x10019853
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [ebx + 0x1bec], edx
mov eax, dword [ebx + 0x1bf8]
cmp eax, 0x7fffffff
je 0x10019877
mov ecx, dword [esi + 0x178]
cmp ecx, 0xffffffff
je 0x10019877
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 [0x1016a600]
mov dword [ebx + 0x1b34], 0x7fffffff
jb 0x100198cb
movsd xmm0, qword [ebx + 0x1958]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [ebx + 0xb8]
movss dword [ebp - 4], xmm0
jmp 0x100198d0
movss xmm0, dword [ebp - 4]
xor esi, esi
cmp dword [ebx + 0x1970], esi
je 0x10019936
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 0x10019928
cmp byte [ecx + 0x33c], dl
jne 0x10019928
comiss xmm0, dword [ecx + 0x238]
jbe 0x10019928
push ecx
call fcn.10013030
add esp, 4
movss xmm0, dword [ebp - 4]
inc esi
cmp esi, dword [ebx + 0x1970]
jne 0x100198e0
mov eax, dword [ebx + 0x1ad8]
test eax, eax
je 0x10019955
cmp byte [eax + 0x8b], 0
jne 0x10019955
push 0
push 0
call fcn.10012d30
add esp, 8
mov ecx, dword [ebx + 0x1998]
test ecx, ecx
jns 0x1001997b
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.1001f640
mov dword [ebx + 0x1994], 0
mov ecx, dword [ebx + 0x1ad0]
test ecx, ecx
jns 0x100199ab
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.1001f6d0
mov dword [ebx + 0x1acc], 0
push 0
push dword [ebx + 0x1ad8]
call fcn.10011310
mov edi, dword [0x10273be0]
add esp, 8
cmp byte [edi + 0x2d8c], 0
mov dword [edi + 0x2d90], 0
je 0x10019aaa
mov eax, dword [0x10273be0]
mov ecx, dword [edi + 0x19e0]
mov dword [ebp - 4], ecx
mov dword [eax + 0x1d38], 7
mov esi, dword [0x10273be0]
mov eax, dword [esi + 0x6c]
test eax, eax
js 0x10019a26
push 1
push eax
call fcn.100152f0
mov ecx, dword [ebp - 4]
add esp, 8
test al, al
je 0x10019a26
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x10273be0]
movss xmm0, dword [esi + 0x3f4]
ucomiss xmm0, dword [0x1016a600]
lahf
test ah, 0x44
jp 0x10019a52
test ecx, ecx
je 0x10019a52
mov dword [edi + 0x2d90], ecx
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x10273be0]
or dword [esi + 0x1a34], 0x40
mov dword [esi + 0x1a80], 0x3f19999a
call fcn.10010480
mov esi, dword [ebp - 4]
push esi
push str.HoveredId:_0x_08X
call fcn.10041d60
push str.Press_ESC_to_abort_picking.
call fcn.10041d60
mov ecx, 0x15d0
test esi, esi
mov eax, 0x15c0
cmove eax, ecx
add eax, dword [0x10273be0]
push str.Click_to_break_in_debugger_
push eax
call fcn.10041d80
push 0
call fcn.10011b60
add esp, 0x18
mov eax, dword [0x10273be0]
movss xmm0, dword [0x1016a6b8]
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.1000d300
add esp, 0xc
mov byte [ebx + 0x196d], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret