Function at 0x180028720
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rdi, qword [0x1802bd7e0]
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm7
cmp byte [rdi + 0xcb], 0
je 0x180028759
test byte [rdi + 0xc], 2
jne 0x180028759
mov byte [rdi + 0xcb], 0
cmp byte [rdi + 0x2ef4], 0
mov r14d, 2
jne 0x18002887e
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x180028877
lea rdx, [0x180103ce0]
call fcn.180022f90
mov rbx, rax
test rax, rax
je 0x180028877
mov rcx, rax
call fcn.1800654a4
mov ebp, eax
cmp eax, 0xffffffff
je 0x18002886f
mov r8d, r14d
xor edx, edx
mov rcx, rbx
call fcn.180064ee8
test eax, eax
jne 0x18002886f
mov rcx, rbx
call fcn.1800654a4
movsxd rsi, eax
cmp esi, 0xffffffff
je 0x18002886f
xor r8d, r8d
mov edx, ebp
mov rcx, rbx
call fcn.180064ee8
test eax, eax
jne 0x18002886f
mov rbp, rsi
cmp rsi, 0xffffffffffffffff
je 0x18002886f
mov rax, qword [0x1802bd7e0]
test rax, rax
je 0x180028801
inc dword [rax + 0x3bc]
mov rdx, qword [0x1802bd7f0]
mov rcx, rbp
call qword [0x1802b7300]
mov rsi, rax
test rax, rax
je 0x18002886f
mov r9, rbx
mov r8, rbp
mov edx, 1
mov rcx, rax
call fcn.180064bb0
mov rcx, rbx
cmp rax, rbp
je 0x18002885d
call fcn.1800644c8
mov rax, qword [0x1802bd7e0]
test rax, rax
je 0x18002884b
dec dword [rax + 0x3bc]
mov rdx, qword [0x1802bd7f0]
mov rcx, rsi
call qword [0x1802b7308]
jmp 0x180028877
call fcn.1800644c8
mov rdx, rbp
mov rcx, rsi
call fcn.180024c20
jmp 0x180028839
mov rcx, rbx
call fcn.1800644c8
mov byte [rdi + 0x2ef4], 1
movss xmm0, dword [rdi + 0x2ef8]
xorps xmm6, xmm6
xor esi, esi
comiss xmm0, xmm6
jbe 0x1800288bf
subss xmm0, dword [rdi + 0x18]
comiss xmm6, xmm0
movss dword [rdi + 0x2ef8], xmm0
jb 0x1800288bf
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1800288b2
call fcn.18002cc40
jmp 0x1800288b9
mov byte [rdi + 0x3a4], 1
mov dword [rdi + 0x2ef8], esi
inc dword [rdi + 0x19b0]
movss xmm0, dword [rdi + 0x18]
mov rax, qword [rdi + 0xa8]
mov byte [rdi + 0x19bc], 1
mov dword [rdi + 0x2ec8], esi
mov dword [rdi + 0x1a10], esi
cvtps2pd xmm0, xmm0
addsd xmm0, qword [rdi + 0x19a8]
movsd qword [rdi + 0x19a8], xmm0
mov byte [rax], 1
mov rax, qword [0x1802bd7e0]
mov rcx, qword [rax + 0xb8]
test rcx, rcx
jne 0x18002891b
mov rax, qword [rax + 0xa8]
mov rcx, qword [rax + 0x50]
mov rcx, qword [rcx]
call fcn.18002d130
movss xmm0, dword [rdi + 0x10]
movss xmm1, dword [rdi + 0x14]
mov qword [rdi + 0x1930], rsi
movss dword [rdi + 0x1938], xmm0
movss dword [rdi + 0x193c], xmm1
mov eax, dword [rdi + 0x1604]
mov dword [rdi + 0x192c], eax
mov eax, esi
mov dword [rdi + 0x1940], esi
cmp byte [rdi + 0x1600], sil
je 0x18002896d
mov dword [rdi + 0x1940], 1
mov eax, 1
cmp byte [rdi + 0x1601], sil
je 0x18002897f
or eax, r14d
mov dword [rdi + 0x1940], eax
test byte [rdi + 0xc], 8
je 0x18002898e
or eax, 4
mov dword [rdi + 0x1940], eax
lea rcx, [rdi + 0x1d40]
call fcn.180033950
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1d40]
mov rdx, qword [rdx + 8]
call fcn.180036880
lea rcx, [rdi + 0x1d40]
call fcn.1800367c0
lea rcx, [rdi + 0x1de8]
call fcn.180033950
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1de8]
mov rdx, qword [rdx + 8]
call fcn.180036880
lea rcx, [rdi + 0x1de8]
call fcn.1800367c0
mov byte [rdi + 0x1ce0], sil
mov qword [rdi + 0x1ce8], rsi
mov qword [rdi + 0x1cf4], rsi
mov dword [rdi + 0x1cf0], esi
mov qword [rdi + 0x1d0c], rsi
mov qword [rdi + 0x1d04], rsi
mov qword [rdi + 0x1cfc], rsi
cmp byte [rdi + 0x1e94], sil
je 0x180028a57
mov eax, dword [rdi + 0x1eb4]
cmp eax, dword [rdi + 0x1a60]
jne 0x180028a57
mov rcx, qword [0x1802bd7e0]
cmp dword [rcx + 0x1a60], eax
jne 0x180028a48
mov dword [rcx + 0x1a64], eax
cmp dword [rcx + 0x1a9c], eax
jne 0x180028a57
mov byte [rcx + 0x1aa0], 1
cmp dword [rdi + 0x1a54], esi
jne 0x180028a67
mov dword [rdi + 0x1a58], esi
jmp 0x180028a79
mov eax, dword [rdi + 0x1a4c]
test eax, eax
je 0x180028a7f
cmp dword [rdi + 0x1a60], eax
jne 0x180028a7f
mov dword [rdi + 0x1a5c], esi
mov eax, dword [rdi + 0x1a4c]
test eax, eax
je 0x180028ab9
movss xmm1, dword [rdi + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rdi + 0x1a58]
movss dword [rdi + 0x1a58], xmm0
cmp dword [rdi + 0x1a60], eax
je 0x180028ab9
addss xmm1, dword [rdi + 0x1a5c]
movss dword [rdi + 0x1a5c], xmm1
mov dword [rdi + 0x1a54], eax
mov eax, dword [rdi + 0x1a60]
mov dword [rdi + 0x1a4c], esi
mov byte [rdi + 0x1a50], sil
cmp dword [rdi + 0x1a64], eax
je 0x180028aeb
cmp dword [rdi + 0x1a9c], eax
jne 0x180028aeb
test eax, eax
je 0x180028aeb
call fcn.18001f5a0
mov ecx, dword [rdi + 0x1a60]
test ecx, ecx
je 0x180028b0a
movss xmm0, dword [rdi + 0x18]
addss xmm0, dword [rdi + 0x1a68]
movss dword [rdi + 0x1a68], xmm0
mov rax, qword [rdi + 0x1a90]
movss xmm0, dword [rdi + 0x18]
addss xmm0, dword [rdi + 0x1ab4]
mov qword [rdi + 0x1aa8], rax
movzx eax, byte [rdi + 0x1a6f]
mov byte [rdi + 0x1aa1], al
mov eax, dword [rdi + 0x2e90]
movss dword [rdi + 0x1ab4], xmm0
mov dword [rdi + 0x1a9c], ecx
mov dword [rdi + 0x1a64], esi
mov byte [rdi + 0x1a70], sil
mov byte [rdi + 0x1aa0], sil
mov byte [rdi + 0x1a6c], sil
test eax, eax
je 0x180028b6f
cmp ecx, eax
je 0x180028b6f
mov dword [rdi + 0x2e90], esi
test ecx, ecx
jne 0x180028b81
mov qword [rdi + 0x1a74], rsi
mov qword [rdi + 0x1a80], rsi
mov eax, dword [rdi + 0x1f04]
lea rcx, [rdi + 0xca0]
lea rdx, [rdi + 0x4a0]
mov dword [rdi + 0x1f08], eax
mov r8d, 0x800
mov qword [rdi + 0x1f00], 0x7f7fffff
mov byte [rdi + 0x1e95], sil
call fcn.18007fac0
movss xmm1, dword [0x180082888]
lea rcx, [rdi + 0x14d]
lea rax, [rdi + 0x4a4]
mov r8d, pe_nt_image_headers64
cmp byte [rcx - 1], sil
je 0x180028bf0
movss xmm0, dword [rax - 4]
comiss xmm6, xmm0
jbe 0x180028be9
movaps xmm0, xmm6
jmp 0x180028bf3
addss xmm0, dword [rdi + 0x18]
jmp 0x180028bf3
movaps xmm0, xmm1
movss dword [rax - 4], xmm0
cmp byte [rcx], sil
je 0x180028c12
movss xmm0, dword [rax]
comiss xmm6, xmm0
jbe 0x180028c0b
movaps xmm0, xmm6
jmp 0x180028c15
addss xmm0, dword [rdi + 0x18]
jmp 0x180028c15
movaps xmm0, xmm1
movss dword [rax], xmm0
cmp byte [rcx + 1], sil
je 0x180028c35
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
jbe 0x180028c2e
movaps xmm0, xmm6
jmp 0x180028c38
addss xmm0, dword [rdi + 0x18]
jmp 0x180028c38
movaps xmm0, xmm1
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], sil
je 0x180028c59
movss xmm0, dword [rax + 8]
comiss xmm6, xmm0
jbe 0x180028c52
movaps xmm0, xmm6
jmp 0x180028c5c
addss xmm0, dword [rdi + 0x18]
jmp 0x180028c5c
movaps xmm0, xmm1
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x180028bd4
call fcn.180025f10
call fcn.18002e850
movsxd rax, dword [rdi + 0x314c]
movss xmm1, dword [rdi + 0x18]
movss xmm7, dword [0x180103dd4]
movaps xmm0, xmm1
subss xmm0, dword [rdi + rax*4 + 0x2f6c]
addss xmm0, dword [rdi + 0x3150]
movss dword [rdi + 0x3150], xmm0
movss dword [rdi + rax*4 + 0x2f6c], xmm1
mov eax, 0x88888889
mov ecx, dword [rdi + 0x314c]
movss xmm1, dword [rdi + 0x3150]
inc ecx
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x78
sub ecx, eax
comiss xmm1, xmm6
mov dword [rdi + 0x314c], ecx
jbe 0x180028cff
divss xmm1, dword [0x180103dcc]
movss xmm0, dword [0x180082874]
divss xmm0, xmm1
jmp 0x180028d02
movaps xmm0, xmm7
movss dword [rdi + 0x3a8], xmm0
call fcn.18002dab0
mov rbx, qword [0x1802bd7e0]
mov r9, qword [rbx + 0x1a30]
test r9, r9
je 0x180028e1b
mov eax, dword [rbx + 0x1a60]
mov dword [rbx + 0x1a64], eax
cmp dword [rbx + 0x1a9c], eax
jne 0x180028d41
mov byte [rbx + 0x1aa0], 1
mov r9, qword [r9 + 0x360]
cmp byte [rbx + 0x138], sil
je 0x180028e0d
mov rcx, qword [0x1802bd7e0]
lea rax, [rbx + 0x130]
mov rdx, rax
test rax, rax
jne 0x180028d72
lea rdx, [rcx + 0x130]
movss xmm0, dword [rdx]
movss xmm1, dword [0x180103df0]
comiss xmm0, xmm1
movss xmm2, dword [rdx + 4]
jb 0x180028e0d
comiss xmm2, xmm1
jb 0x180028e0d
movss xmm1, dword [rax]
subss xmm1, dword [rbx + 0x1a88]
movss xmm2, dword [rax + 4]
subss xmm2, dword [rbx + 0x1a8c]
movss xmm0, dword [r9 + 0x10]
ucomiss xmm0, xmm1
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
jp 0x180028dd0
jne 0x180028dd0
movss xmm0, dword [r9 + 0x14]
ucomiss xmm0, xmm2
jp 0x180028dd0
je 0x180028dff
test dword [r9 + 0xc], 0x100
jne 0x180028dec
comiss xmm6, dword [rcx + 0x2ef8]
jb 0x180028dec
mov eax, dword [rcx + 0x1c]
mov dword [rcx + 0x2ef8], eax
mov r8d, 1
lea rdx, [rsp + 0x60]
mov rcx, r9
call fcn.18002d820
mov rcx, qword [rbx + 0x1a30]
call fcn.180021ab0
jmp 0x180028e55
call fcn.18001f5a0
mov qword [rbx + 0x1a30], rsi
jmp 0x180028e55
mov rcx, qword [rbx + 0x1a90]
test rcx, rcx
je 0x180028e55
mov eax, dword [rbx + 0x1a60]
cmp dword [rcx + 0x4c], eax
jne 0x180028e55
mov dword [rbx + 0x1a64], eax
cmp dword [rbx + 0x1a9c], eax
jne 0x180028e47
mov byte [rbx + 0x1aa0], 1
cmp byte [rbx + 0x138], sil
jne 0x180028e55
call fcn.18001f5a0
mov r8, qword [0x1802bd7e0]
mov eax, dword [r8 + 0x1b60]
sub eax, 1
js 0x180028e9c
mov r8, qword [r8 + 0x1b68]
movsxd rdx, eax
add r8, 8
lea rcx, [rdx + rdx*2]
shl rcx, 4
add r8, rcx
mov rax, qword [r8]
test rax, rax
je 0x180028e92
test dword [rax + 0xc], 0x8000000
jne 0x180028eb2
sub r8, 0x30
sub rdx, 1
jns 0x180028e81
cmp qword [rdi + 0x1bc8], rsi
je 0x180028ed1
movss xmm0, dword [rdi + 0x1be4]
comiss xmm0, xmm6
jbe 0x180028ed1
movss xmm1, dword [rdi + 0x18]
mulss xmm1, dword [0x1801029d0]
addss xmm1, dword [rdi + 0x1d38]
minss xmm1, dword [0x180082874]
jmp 0x180028eee
movss xmm0, dword [rdi + 0x18]
mulss xmm0, dword [0x18008288c]
movss xmm1, dword [rdi + 0x1d38]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [rdi + 0x1d38], xmm1
mov dword [rdi + 0x1e90], esi
mov qword [rdi + 0x3158], 0xffffffffffffffff
mov dword [rdi + 0x3154], 0xffffffff
mov dword [rdi + 0x2ee4], 0x3f800000
mov dword [rdi + 0x2ee8], 0x3f800000
call fcn.18002ee30
mov rbx, qword [rdi + 0x1b80]
test rbx, rbx
je 0x180028f6b
cmp byte [rbx + 0x7e], sil
je 0x180028f6b
test dword [rbx + 0xc], 0x40000
jne 0x180028f6b
cmp byte [rdi + 0x148], sil
jne 0x180028f6b
mov rax, qword [0x1802bd7e0]
mov ecx, dword [rax + 0x3c]
test ecx, ecx
js 0x180028f6b
mov dl, 1
call fcn.1800244d0
test al, al
je 0x180028f6b
mov al, 1
jmp 0x180028f6d
xor al, al
mov byte [rdi + 0x1cd8], al
cmp dword [rdi + 0x1a60], esi
jne 0x180028fcd
test al, al
je 0x180028fcd
mov qword [rdi + 0x1cc0], rbx
mov dword [rdi + 0x1cd0], 0x7fffffff
cmp dword [rdi + 0x1b88], esi
je 0x180028fbc
mov eax, dword [rdi + 0x1bf0]
cmp eax, 0x7fffffff
je 0x180028fbc
cmp byte [rdi + 0x149], sil
cmovne r14d, esi
add r14d, eax
mov dword [rdi + 0x1cd4], r14d
jmp 0x180028fcd
movzx eax, byte [rdi + 0x149]
neg al
sbb ecx, ecx
mov dword [rdi + 0x1cd4], ecx
mov r8, qword [rdi + 0x1cc0]
mov qword [rdi + 0x1cb8], rsi
mov dword [rdi + 0x1ccc], 0x7fffffff
mov dword [rdi + 0x1cc8], 0x7fffffff
test r8, r8
je 0x180029062
mov eax, dword [rdi + 0x1cd0]
mov qword [rdi + 0x1cb8], r8
cmp eax, 0x7fffffff
je 0x180029021
mov ecx, dword [r8 + 0x178]
cmp ecx, 0xffffffff
je 0x180029021
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rdi + 0x1cc8], edx
mov eax, dword [rdi + 0x1cd4]
cmp eax, 0x7fffffff
je 0x180029047
mov ecx, dword [r8 + 0x17c]
cmp ecx, 0xffffffff
je 0x180029047
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rdi + 0x1ccc], edx
mov qword [rdi + 0x1cc0], rsi
mov dword [rdi + 0x1cd4], 0x7fffffff
mov dword [rdi + 0x1cd0], 0x7fffffff
movss xmm0, dword [rdi + 0xd0]
comiss xmm0, xmm6
mov dword [rdi + 0x1bf0], 0x7fffffff
jb 0x180029089
movsd xmm7, qword [rdi + 0x19a8]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov ebx, esi
cmp dword [rdi + 0x19c0], esi
je 0x1800290ed
mov r14, rsi
nop word [rax + rax]
mov rax, qword [rdi + 0x19c8]
mov rcx, qword [r14 + rax]
movzx eax, byte [rcx + 0x7e]
mov byte [rcx + 0x7f], al
mov word [rcx + 0x88], si
mov byte [rcx + 0x7e], sil
mov byte [rcx + 0x80], sil
test al, al
jne 0x1800290df
cmp byte [rcx + 0x3a8], sil
jne 0x1800290df
comiss xmm7, dword [rcx + 0x254]
jbe 0x1800290df
call fcn.180021da0
inc ebx
add r14, 8
cmp ebx, dword [rdi + 0x19c0]
jne 0x1800290a0
mov rax, qword [rdi + 0x1b80]
test rax, rax
je 0x1800291c3
cmp byte [rax + 0x7f], sil
jne 0x1800291c3
mov r11, qword [0x1802bd7e0]
mov eax, dword [r11 + 0x19d0]
sub eax, 1
js 0x180029162
movsxd r9, eax
mov rax, qword [r11 + 0x19d8]
lea r10, [rax + r9*8]
mov r8, qword [r10]
test r8, r8
je 0x180029158
cmp byte [r8 + 0x7f], sil
je 0x180029158
mov eax, dword [r8 + 0xc]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [r8 + 0xc], 0x18
setae al
test al, cl
jne 0x18002936b
sub r10, 8
sub r9, 1
jns 0x180029128
cmp qword [r11 + 0x1b80], rsi
je 0x180029195
mov qword [r11 + 0x1b80], rsi
mov byte [r11 + 0x1bf9], sil
mov dword [r11 + 0x1b88], esi
mov byte [r11 + 0x1bf4], sil
mov dword [r11 + 0x1bec], esi
mov r11, qword [0x1802bd7e0]
lea rbx, [r11 + 0x1b60]
mov eax, dword [rbx]
test eax, eax
jle 0x1800291c3
mov ecx, dword [rbx + 4]
test ecx, ecx
jns 0x1800291c1
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
mov rcx, rbx
test eax, eax
cmovg edx, eax
call fcn.18002fe50
mov dword [rbx], esi
mov ecx, dword [rdi + 0x19f4]
test ecx, ecx
jns 0x1800291e9
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x19f0]
test eax, eax
cmovg edx, eax
call fcn.18002fdb0
mov dword [rdi + 0x19f0], esi
mov ecx, dword [rdi + 0x1b74]
test ecx, ecx
jns 0x180029215
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x1b70]
test eax, eax
cmovg edx, eax
call fcn.18002fe50
mov dword [rdi + 0x1b70], esi
xor edx, edx
mov rcx, qword [rdi + 0x1b80]
call fcn.18001f8f0
mov rbp, qword [0x1802bd7e0]
mov dword [rbp + 0x2f68], esi
cmp byte [rbp + 0x2f64], sil
je 0x18002930a
mov rax, qword [0x1802bd7e0]
mov r14d, dword [rbp + 0x1a54]
mov dword [rax + 0x1e90], 7
mov rbx, qword [0x1802bd7e0]
mov ecx, dword [rbx + 0x74]
test ecx, ecx
js 0x180029282
mov dl, 1
call fcn.1800244d0
test al, al
je 0x180029282
mov byte [rbp + 0x2f64], sil
mov rbx, qword [0x1802bd7e0]
movss xmm0, dword [rbx + 0x43c]
ucomiss xmm0, xmm6
jp 0x1800292ab
jne 0x1800292ab
test r14d, r14d
je 0x1800292ab
mov dword [rbp + 0x2f68], r14d
mov byte [rbp + 0x2f64], sil
mov rbx, qword [0x1802bd7e0]
or dword [rbx + 0x1ab8], 0x40
mov dword [rbx + 0x1b10], 0x3f19999a
call fcn.18001e540
mov edx, r14d
lea rcx, str.HoveredId:_0x_08X
call fcn.180052390
lea rcx, str.Press_ESC_to_abort_picking.
call fcn.180052390
mov rcx, qword [0x1802bd7e0]
lea rdx, str.Click_to_break_in_debugger_
mov eax, 0x10
test r14d, r14d
cmove rsi, rax
add rcx, 0x1608
add rcx, rsi
call fcn.1800523c0
call fcn.180020300
mov rax, qword [0x1802bd7e0]
lea rcx, str.DebugDefault
xor r8d, r8d
xor edx, edx
or dword [rax + 0x1ab8], 2
mov dword [rax + 0x1ad8], 0x43c80000
mov dword [rax + 0x1adc], 0x43c80000
mov dword [rax + 0x1ac0], 4
call fcn.18001b900
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x20]
mov byte [rdi + 0x19bd], 1
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
mov rax, qword [r8 + 0x378]
test rax, rax
cmovne r8, rax
mov rcx, r8
call fcn.180021ab0
jmp 0x1800291c3