Function at 0x1001ae20
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [0x102281c0]
push esi
push edi
cmp byte [ebx + 0xb3], 0
je 0x1001ae45
test byte [ebx + 0xc], 2
jne 0x1001ae45
mov byte [ebx + 0xb3], 0
cmp byte [ebx + 0x2d34], 0
jne 0x1001af54
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1001af4d
push 0x10163690
push eax
call fcn.10015e60
mov esi, eax
add esp, 8
test esi, esi
je 0x1001af4d
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 0x1001af43
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 0x1001af43
push esi
call edi
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
je 0x1001af43
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 0x1001af43
mov eax, dword [0x102281c0]
test eax, eax
je 0x1001aed9
inc dword [eax + 0x374]
push dword [0x102281e0]
push edi
call dword [0x101bb1f8]
mov edi, eax
add esp, 8
test edi, edi
je 0x1001af43
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 0x1001af2f
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [0x102281c0]
test eax, eax
je 0x1001af1d
dec dword [eax + 0x374]
push dword [0x102281e0]
push edi
call dword [0x101bb1fc]
add esp, 8
jmp 0x1001af4d
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
push dword [ebp - 4]
push edi
call fcn.100179d0
add esp, 0xc
jmp 0x1001af0e
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 0x1001af99
subss xmm0, dword [ebx + 0x18]
comiss xmm1, xmm0
movss dword [ebx + 0x2d38], xmm0
jb 0x1001af99
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1001af88
push eax
call fcn.1001e250
add esp, 4
jmp 0x1001af8f
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 [0x102281c0]
mov eax, dword [ecx + 0xa4]
test eax, eax
jne 0x1001aff6
mov eax, dword [ecx + 0x98]
mov eax, dword [eax + 0x44]
mov eax, dword [eax]
push eax
call fcn.1001e6d0
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 0x1001b05b
mov dword [ebx + 0x18f0], 1
mov eax, 1
cmp byte [ebx + 0x15b9], 0
je 0x1001b06d
or eax, 2
mov dword [ebx + 0x18f0], eax
test byte [ebx + 0xc], 8
je 0x1001b07c
or eax, 4
mov dword [ebx + 0x18f0], eax
lea ecx, [ebx + 0x1c48]
call fcn.10023f90
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1c48]
push dword [eax + 8]
call fcn.10026ff0
lea ecx, [ebx + 0x1c48]
call fcn.10026f20
lea ecx, [ebx + 0x1cc0]
call fcn.10023f90
mov eax, dword [ebx + 0x98]
lea ecx, [ebx + 0x1cc0]
push dword [eax + 8]
call fcn.10026ff0
lea ecx, [ebx + 0x1cc0]
call fcn.10026f20
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 0x1001b175
mov eax, dword [ebx + 0x1d54]
cmp eax, dword [ebx + 0x19ec]
jne 0x1001b175
mov ecx, dword [0x102281c0]
cmp dword [ecx + 0x19ec], eax
jne 0x1001b166
mov dword [ecx + 0x19f0], eax
cmp dword [ecx + 0x1a20], eax
jne 0x1001b175
mov byte [ecx + 0x1a24], 1
cmp dword [ebx + 0x19e0], 0
jne 0x1001b18a
mov dword [ebx + 0x19e4], 0
jmp 0x1001b19c
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x1001b1a6
cmp dword [ebx + 0x19ec], eax
jne 0x1001b1a6
mov dword [ebx + 0x19e8], 0
mov eax, dword [ebx + 0x19d8]
test eax, eax
je 0x1001b1e2
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x19e4]
movss dword [ebx + 0x19e4], xmm0
cmp dword [ebx + 0x19ec], eax
je 0x1001b1e2
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 0x1001b21f
cmp dword [ebx + 0x1a20], eax
jne 0x1001b21f
test eax, eax
je 0x1001b21f
push 0
push 0
call fcn.1001e530
add esp, 8
mov ecx, dword [ebx + 0x19ec]
test ecx, ecx
je 0x1001b23e
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 0x1001b2a8
cmp ecx, eax
je 0x1001b2a8
mov dword [ebx + 0x2cd8], 0
test ecx, ecx
jne 0x1001b2c4
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 [0x101637d0]
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 0x1001b332
movss xmm0, dword [edx]
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001b32b
xorps xmm0, xmm0
jmp 0x1001b33a
addss xmm0, dword [ebx + 0x18]
jmp 0x1001b33a
movss xmm0, dword [0x101637dc]
movss dword [edx], xmm0
inc eax
add edx, 4
cmp eax, 0x200
jl 0x1001b310
call fcn.10018c00
call fcn.1001fba0
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 [0x10163708]
mov dword [ebx + 0x2f74], edx
jbe 0x1001b3bd
divss xmm0, dword [0x101637b4]
movss xmm1, dword [0x10163760]
divss xmm1, xmm0
jmp 0x1001b3c2
movss xmm1, dword [ebp - 4]
movss dword [ebx + 0x360], xmm1
call fcn.1001f000
mov esi, dword [0x102281c0]
mov edx, dword [esi + 0x19bc]
test edx, edx
je 0x1001b4dd
mov eax, dword [esi + 0x19ec]
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x1001b3fe
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
mov edx, dword [edx + 0x304]
je 0x1001b4c8
mov ecx, dword [0x102281c0]
lea eax, [esi + 0xe8]
mov edi, eax
test eax, eax
jne 0x1001b429
lea edi, [ecx + 0xe8]
movss xmm0, dword [edi]
movss xmm1, dword [0x101637f0]
comiss xmm0, xmm1
movss xmm2, dword [edi + 4]
jb 0x1001b4c8
comiss xmm2, xmm1
jb 0x1001b4c8
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 0x1001b48b
movss xmm0, dword [edx + 0x10]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1001b4b8
test dword [edx + 8], 0x100
jne 0x1001b4a9
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x2d38]
jb 0x1001b4a9
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2d38], eax
push 1
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.1001ed30
add esp, 0xc
push dword [esi + 0x19bc]
call fcn.10014b20
add esp, 4
jmp 0x1001b51c
push 0
push 0
call fcn.1001e530
mov dword [esi + 0x19bc], 0
jmp 0x1001b519
mov ecx, dword [esi + 0x1a18]
test ecx, ecx
je 0x1001b51c
mov eax, dword [esi + 0x19ec]
cmp dword [ecx + 0x48], eax
jne 0x1001b51c
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x1001b507
mov byte [esi + 0x1a24], 1
cmp byte [esi + 0xf0], 0
jne 0x1001b51c
push 0
push 0
call fcn.1001e530
add esp, 8
mov eax, dword [0x102281c0]
mov edx, dword [eax + 0x1ac0]
sub edx, 1
js 0x1001b557
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 0x1001b54f
test dword [ecx + 8], 0x8000000
jne 0x1001b571
sub eax, 0x24
sub edx, 1
jns 0x1001b540
cmp dword [ebx + 0x1b18], 0
je 0x1001b590
movss xmm0, dword [ebx + 0x1b28]
comiss xmm0, dword [0x10163708]
jbe 0x1001b590
movss xmm1, dword [ebx + 0x18]
mulss xmm1, dword [0x1016378c]
addss xmm1, dword [ebx + 0x1c44]
minss xmm1, dword [0x10163760]
jmp 0x1001b5b1
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x10163794]
movss xmm1, dword [ebx + 0x1c44]
subss xmm1, xmm0
maxss xmm1, dword [0x10163708]
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.100200f0
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 0x1001b695
mov eax, dword [ebx + 0x1bf4]
mov dword [ebx + 0x1be4], esi
cmp eax, 0x7fffffff
je 0x1001b653
mov ecx, dword [esi + 0x174]
cmp ecx, 0xffffffff
je 0x1001b653
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [ebx + 0x1bec], edx
mov eax, dword [ebx + 0x1bf8]
cmp eax, 0x7fffffff
je 0x1001b677
mov ecx, dword [esi + 0x178]
cmp ecx, 0xffffffff
je 0x1001b677
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 [0x10163708]
mov dword [ebx + 0x1b34], 0x7fffffff
jb 0x1001b6cb
movsd xmm0, qword [ebx + 0x1958]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [ebx + 0xb8]
movss dword [ebp - 4], xmm0
jmp 0x1001b6d0
movss xmm0, dword [ebp - 4]
xor esi, esi
cmp dword [ebx + 0x1970], esi
je 0x1001b736
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 0x1001b728
cmp byte [ecx + 0x33c], dl
jne 0x1001b728
comiss xmm0, dword [ecx + 0x238]
jbe 0x1001b728
push ecx
call fcn.10014d70
add esp, 4
movss xmm0, dword [ebp - 4]
inc esi
cmp esi, dword [ebx + 0x1970]
jne 0x1001b6e0
mov eax, dword [ebx + 0x1ad8]
test eax, eax
je 0x1001b755
cmp byte [eax + 0x8b], 0
jne 0x1001b755
push 0
push 0
call fcn.10014a70
add esp, 8
mov ecx, dword [ebx + 0x1998]
test ecx, ecx
jns 0x1001b77b
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.10020fe0
mov dword [ebx + 0x1994], 0
mov ecx, dword [ebx + 0x1ad0]
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 + 0x1acc]
call fcn.10021070
mov dword [ebx + 0x1acc], 0
push 0
push dword [ebx + 0x1ad8]
call fcn.10012f80
mov edi, dword [0x102281c0]
add esp, 8
cmp byte [edi + 0x2d8c], 0
mov dword [edi + 0x2d90], 0
je 0x1001b8aa
mov eax, dword [0x102281c0]
mov ecx, dword [edi + 0x19e0]
mov dword [ebp - 4], ecx
mov dword [eax + 0x1d38], 7
mov esi, dword [0x102281c0]
mov eax, dword [esi + 0x6c]
test eax, eax
js 0x1001b826
push 1
push eax
call fcn.10017180
mov ecx, dword [ebp - 4]
add esp, 8
test al, al
je 0x1001b826
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x102281c0]
movss xmm0, dword [esi + 0x3f4]
ucomiss xmm0, dword [0x10163708]
lahf
test ah, 0x44
jp 0x1001b852
test ecx, ecx
je 0x1001b852
mov dword [edi + 0x2d90], ecx
mov byte [edi + 0x2d8c], 0
mov esi, dword [0x102281c0]
or dword [esi + 0x1a34], 0x40
mov dword [esi + 0x1a80], 0x3f19999a
call fcn.10012030
mov esi, dword [ebp - 4]
push esi
push str.HoveredId:_0x_08X
call fcn.10043530
push str.Press_ESC_to_abort_picking.
call fcn.10043530
mov ecx, 0x15d0
test esi, esi
mov eax, 0x15c0
cmove eax, ecx
add eax, dword [0x102281c0]
push str.Click_to_break_in_debugger_
push eax
call fcn.10043550
push 0
call fcn.100138a0
add esp, 0x18
mov eax, dword [0x102281c0]
movss xmm0, dword [0x101637c0]
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.1000f070
add esp, 0xc
mov byte [ebx + 0x196d], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret