Function at 0x18001fbd0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rbx, qword [0x180061c18]
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm7
cmp byte [rbx + 0xcb], 0
je 0x18001fc13
test byte [rbx + 0xc], 2
jne 0x18001fc13
mov byte [rbx + 0xcb], 0
xor edi, edi
cmp byte [rbx + 0x2ef4], dil
jne 0x18001fc76
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18001fc6f
lea r8, [rsp + 0x80]
mov qword [rsp + 0x80], rdi
call fcn.18001c570
mov rsi, rax
test rax, rax
je 0x18001fc6f
mov rdx, qword [rsp + 0x80]
mov rcx, rax
call fcn.18002c260
mov rcx, qword [0x180061c18]
test rcx, rcx
je 0x18001fc66
dec dword [rcx + 0x3bc]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov byte [rbx + 0x2ef4], 1
movss xmm0, dword [rbx + 0x2ef8]
xorps xmm6, xmm6
comiss xmm0, xmm6
jbe 0x18001fcb5
subss xmm0, dword [rbx + 0x18]
comiss xmm6, xmm0
movss dword [rbx + 0x2ef8], xmm0
jb 0x18001fcb5
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18001fca8
call fcn.18002c4c0
jmp 0x18001fcaf
mov byte [rbx + 0x3a4], 1
mov dword [rbx + 0x2ef8], edi
inc dword [rbx + 0x19b0]
movss xmm0, dword [rbx + 0x18]
mov rax, qword [rbx + 0xa8]
mov byte [rbx + 0x19bc], 1
mov dword [rbx + 0x2ec8], edi
mov dword [rbx + 0x1a10], edi
cvtps2pd xmm0, xmm0
addsd xmm0, qword [rbx + 0x19a8]
movsd qword [rbx + 0x19a8], xmm0
mov byte [rax], 1
mov rax, qword [0x180061c18]
mov rcx, qword [rax + 0xb8]
test rcx, rcx
jne 0x18001fd11
mov rax, qword [rax + 0xa8]
mov rcx, qword [rax + 0x48]
mov rcx, qword [rcx]
call fcn.180026b40
mov ecx, 1
mov eax, dword [rbx + 0x1604]
movss xmm2, dword [rbx + 0x10]
movss xmm0, dword [rbx + 0x14]
mov qword [rsp + 0x20], rdi
movups xmm1, xmmword [rsp + 0x20]
mov dword [rbx + 0x192c], eax
mov eax, edi
mov dword [rbx + 0x1940], edi
shufps xmm1, xmm1, 0xd2
movss xmm1, xmm2
shufps xmm1, xmm1, 0x27
movss xmm1, xmm0
shufps xmm1, xmm1, 0x39
movups xmmword [rbx + 0x1930], xmm1
cmp byte [rbx + 0x1600], dil
je 0x18001fd6f
mov dword [rbx + 0x1940], ecx
mov eax, ecx
cmp byte [rbx + 0x1601], dil
je 0x18001fd81
or eax, 2
mov dword [rbx + 0x1940], eax
test byte [rbx + 0xc], 8
je 0x18001fd90
or eax, 4
mov dword [rbx + 0x1940], eax
lea rbp, [rbx + 0x1d40]
mov rcx, rbp
call fcn.180034fc0
mov rax, qword [rbx + 0xa8]
mov esi, 8
mov ecx, dword [rbp + 0x74]
mov r8d, dword [rbp + 0x70]
mov r15, qword [rax + 8]
cmp r8d, ecx
jne 0x18001fde2
inc r8d
test ecx, ecx
je 0x18001fdcd
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18001fdcf
mov eax, esi
cmp eax, r8d
lea rcx, [rbp + 0x70]
cmovg r8d, eax
mov edx, r8d
call fcn.18002d480
movsxd rdx, dword [rbp + 0x70]
mov rcx, rbp
mov rax, qword [rbp + 0x78]
mov qword [rax + rdx*8], r15
inc dword [rbp + 0x70]
call fcn.1800353d0
mov rcx, rbp
call fcn.1800355a0
lea rbp, [rbx + 0x1de8]
mov rcx, rbp
call fcn.180034fc0
mov rax, qword [rbx + 0xa8]
mov r8d, dword [rbp + 0x74]
mov ecx, dword [rbp + 0x70]
mov r15, qword [rax + 8]
cmp ecx, r8d
jne 0x18001fe4a
inc ecx
test r8d, r8d
je 0x18001fe3a
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
lea esi, [r8 + rax]
cmp esi, ecx
cmovg ecx, esi
mov edx, ecx
lea rcx, [rbp + 0x70]
call fcn.18002d480
movsxd rdx, dword [rbp + 0x70]
mov rcx, rbp
mov rax, qword [rbp + 0x78]
mov qword [rax + rdx*8], r15
inc dword [rbp + 0x70]
call fcn.1800353d0
mov rcx, rbp
call fcn.1800355a0
mov rdx, qword [0x180061c18]
mov byte [rbx + 0x1ce0], dil
mov qword [rbx + 0x1ce8], rdi
mov qword [rbx + 0x1cf4], rdi
mov dword [rbx + 0x1cf0], edi
mov qword [rbx + 0x1d0c], rdi
mov qword [rbx + 0x1d04], rdi
mov qword [rbx + 0x1cfc], rdi
cmp byte [rbx + 0x1e94], dil
je 0x18001fed4
mov eax, dword [rbx + 0x1eb4]
cmp eax, dword [rbx + 0x1a60]
jne 0x18001fed4
cmp dword [rdx + 0x1a60], eax
jne 0x18001fec5
mov dword [rdx + 0x1a64], eax
cmp dword [rdx + 0x1a9c], eax
jne 0x18001fed4
mov byte [rdx + 0x1aa0], 1
cmp dword [rbx + 0x1a54], edi
jne 0x18001fee4
mov dword [rbx + 0x1a58], edi
jmp 0x18001fef6
mov eax, dword [rbx + 0x1a4c]
test eax, eax
je 0x18001fefc
cmp dword [rbx + 0x1a60], eax
jne 0x18001fefc
mov dword [rbx + 0x1a5c], edi
mov eax, dword [rbx + 0x1a4c]
test eax, eax
je 0x18001ff36
movss xmm1, dword [rbx + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rbx + 0x1a58]
movss dword [rbx + 0x1a58], xmm0
cmp dword [rbx + 0x1a60], eax
je 0x18001ff36
addss xmm1, dword [rbx + 0x1a5c]
movss dword [rbx + 0x1a5c], xmm1
mov dword [rbx + 0x1a54], eax
mov eax, dword [rbx + 0x1a60]
mov dword [rbx + 0x1a4c], edi
mov byte [rbx + 0x1a50], dil
cmp dword [rbx + 0x1a64], eax
je 0x18001ffae
cmp dword [rbx + 0x1a9c], eax
jne 0x18001ffae
test eax, eax
je 0x18001ffae
mov ecx, dword [rdx + 0x1a60]
test ecx, ecx
setne al
mov byte [rdx + 0x1a6c], al
test ecx, ecx
je 0x18001ff85
mov dword [rdx + 0x1a68], edi
mov word [rdx + 0x1a6e], di
mov dword [rdx + 0x1a60], edi
mov byte [rdx + 0x1a6d], dil
mov qword [rdx + 0x1a90], rdi
mov byte [rdx + 0x1a70], dil
mov qword [rdx + 0x1a74], rdi
mov qword [rdx + 0x1a80], rdi
mov ecx, dword [rbx + 0x1a60]
test ecx, ecx
je 0x18001ffcd
movss xmm0, dword [rbx + 0x18]
addss xmm0, dword [rbx + 0x1a68]
movss dword [rbx + 0x1a68], xmm0
mov rax, qword [rbx + 0x1a90]
movss xmm0, dword [rbx + 0x18]
addss xmm0, dword [rbx + 0x1ab4]
mov qword [rbx + 0x1aa8], rax
movzx eax, byte [rbx + 0x1a6f]
mov byte [rbx + 0x1aa1], al
mov eax, dword [rbx + 0x2e90]
movss dword [rbx + 0x1ab4], xmm0
mov dword [rbx + 0x1a9c], ecx
mov dword [rbx + 0x1a64], edi
mov byte [rbx + 0x1a70], dil
mov byte [rbx + 0x1aa0], dil
mov byte [rbx + 0x1a6c], dil
test eax, eax
je 0x180020032
cmp ecx, eax
je 0x180020032
mov dword [rbx + 0x2e90], edi
test ecx, ecx
jne 0x180020044
mov qword [rbx + 0x1a74], rdi
mov qword [rbx + 0x1a80], rdi
mov eax, dword [rbx + 0x1f04]
lea rcx, [rbx + 0xca0]
lea rdx, [rbx + 0x4a0]
mov dword [rbx + 0x1f08], eax
mov r8d, 0x800
mov qword [rbx + 0x1f00], 0x7f7fffff
mov byte [rbx + 0x1e95], dil
call sub.VCRUNTIME140.dll_memcpy
movss xmm1, dword [0x180058fc0]
lea rcx, [rbx + 0x14d]
lea rax, [rbx + 0x4a4]
mov r8d, 0x80
cmp byte [rcx - 1], dil
je 0x1800200b3
movss xmm0, dword [rax - 4]
comiss xmm6, xmm0
jbe 0x1800200ac
movaps xmm0, xmm6
jmp 0x1800200b6
addss xmm0, dword [rbx + 0x18]
jmp 0x1800200b6
movaps xmm0, xmm1
movss dword [rax - 4], xmm0
cmp byte [rcx], dil
je 0x1800200d5
movss xmm0, dword [rax]
comiss xmm6, xmm0
jbe 0x1800200ce
movaps xmm0, xmm6
jmp 0x1800200d8
addss xmm0, dword [rbx + 0x18]
jmp 0x1800200d8
movaps xmm0, xmm1
movss dword [rax], xmm0
cmp byte [rcx + 1], dil
je 0x1800200f8
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
jbe 0x1800200f1
movaps xmm0, xmm6
jmp 0x1800200fb
addss xmm0, dword [rbx + 0x18]
jmp 0x1800200fb
movaps xmm0, xmm1
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], dil
je 0x18002011c
movss xmm0, dword [rax + 8]
comiss xmm6, xmm0
jbe 0x180020115
movaps xmm0, xmm6
jmp 0x18002011f
addss xmm0, dword [rbx + 0x18]
jmp 0x18002011f
movaps xmm0, xmm1
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x180020097
call fcn.180029800
call fcn.18001eec0
movsxd rax, dword [rbx + 0x314c]
movss xmm1, dword [rbx + 0x18]
movss xmm7, dword [0x180058fb4]
movaps xmm0, xmm1
subss xmm0, dword [rbx + rax*4 + 0x2f6c]
addss xmm0, dword [rbx + 0x3150]
movss dword [rbx + 0x3150], xmm0
movss dword [rbx + rax*4 + 0x2f6c], xmm1
mov eax, 0x88888889
mov ecx, dword [rbx + 0x314c]
movss xmm1, dword [rbx + 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 [rbx + 0x314c], ecx
jbe 0x1800201c2
divss xmm1, dword [0x180058f80]
movss xmm0, dword [0x180058ea0]
divss xmm0, xmm1
jmp 0x1800201c5
movaps xmm0, xmm7
movss dword [rbx + 0x3a8], xmm0
call fcn.18001f770
call fcn.18001ea30
mov r11, qword [0x180061c18]
mov eax, dword [r11 + 0x1b60]
sub eax, 1
js 0x18002021e
movsxd rdx, eax
mov rax, qword [r11 + 0x1b68]
add rax, 8
lea r8, [rdx + rdx*2]
shl r8, 4
add r8, rax
mov rax, qword [r8]
test rax, rax
je 0x180020214
test dword [rax + 0xc], 0x8000000
jne 0x180020234
sub r8, 0x30
sub rdx, 1
jns 0x180020203
cmp qword [rbx + 0x1bc8], rdi
je 0x180020253
movss xmm0, dword [rbx + 0x1be4]
comiss xmm0, xmm6
jbe 0x180020253
movss xmm1, dword [rbx + 0x18]
mulss xmm1, dword [0x180058f48]
addss xmm1, dword [rbx + 0x1d38]
minss xmm1, dword [0x180058ea0]
jmp 0x180020270
movss xmm0, dword [rbx + 0x18]
mulss xmm0, dword [0x180058f54]
movss xmm1, dword [rbx + 0x1d38]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [rbx + 0x1d38], xmm1
mov dword [rbx + 0x1e90], edi
mov qword [rbx + 0x3158], 0xffffffffffffffff
mov dword [rbx + 0x3154], 0xffffffff
mov dword [rbx + 0x2ee4], 0x3f800000
mov dword [rbx + 0x2ee8], 0x3f800000
call fcn.18001f230
mov r10, qword [rbx + 0x1b80]
test r10, r10
je 0x1800202e6
cmp byte [r10 + 0x7e], dil
je 0x1800202e6
test dword [r10 + 0xc], 0x40000
jne 0x1800202e6
cmp byte [rbx + 0x148], dil
jne 0x1800202e6
mov ecx, dword [r11 + 0x3c]
test ecx, ecx
js 0x1800202e6
call fcn.180021340
test al, al
je 0x1800202e6
mov al, 1
jmp 0x1800202e8
xor al, al
mov byte [rbx + 0x1cd8], al
cmp dword [rbx + 0x1a60], edi
jne 0x18002034b
test al, al
je 0x18002034b
mov qword [rbx + 0x1cc0], r10
mov dword [rbx + 0x1cd0], 0x7fffffff
cmp dword [rbx + 0x1b88], edi
je 0x18002033a
mov ecx, dword [rbx + 0x1bf0]
cmp ecx, 0x7fffffff
je 0x18002033a
cmp byte [rbx + 0x149], dil
mov eax, 2
cmovne eax, edi
add eax, ecx
mov dword [rbx + 0x1cd4], eax
jmp 0x18002034b
movzx eax, byte [rbx + 0x149]
neg al
sbb ecx, ecx
mov dword [rbx + 0x1cd4], ecx
mov r8, qword [rbx + 0x1cc0]
mov qword [rbx + 0x1cb8], rdi
mov dword [rbx + 0x1ccc], 0x7fffffff
mov dword [rbx + 0x1cc8], 0x7fffffff
test r8, r8
je 0x1800203e0
mov eax, dword [rbx + 0x1cd0]
mov qword [rbx + 0x1cb8], r8
cmp eax, 0x7fffffff
je 0x18002039f
mov ecx, dword [r8 + 0x178]
cmp ecx, 0xffffffff
je 0x18002039f
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rbx + 0x1cc8], edx
mov eax, dword [rbx + 0x1cd4]
cmp eax, 0x7fffffff
je 0x1800203c5
mov ecx, dword [r8 + 0x17c]
cmp ecx, 0xffffffff
je 0x1800203c5
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rbx + 0x1ccc], edx
mov qword [rbx + 0x1cc0], rdi
mov dword [rbx + 0x1cd4], 0x7fffffff
mov dword [rbx + 0x1cd0], 0x7fffffff
movss xmm0, dword [rbx + 0xd0]
comiss xmm0, xmm6
mov dword [rbx + 0x1bf0], 0x7fffffff
jb 0x180020407
movsd xmm7, qword [rbx + 0x19a8]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov esi, edi
cmp dword [rbx + 0x19c0], edi
je 0x180020474
mov r14, rdi
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx + 0x19c8]
mov rcx, qword [r14 + rax]
movzx eax, byte [rcx + 0x7e]
mov byte [rcx + 0x7f], al
mov word [rcx + 0x88], di
mov byte [rcx + 0x7e], dil
mov byte [rcx + 0x80], dil
test al, al
jne 0x18002045f
cmp byte [rcx + 0x3a8], dil
jne 0x18002045f
comiss xmm7, dword [rcx + 0x254]
jbe 0x18002045f
call fcn.18001e0d0
inc esi
add r14, 8
cmp esi, dword [rbx + 0x19c0]
jne 0x180020420
mov r11, qword [0x180061c18]
mov rax, qword [rbx + 0x1b80]
test rax, rax
je 0x1800204e1
cmp byte [rax + 0x7f], dil
jne 0x1800204e1
mov eax, dword [r11 + 0x19d0]
sub eax, 1
js 0x1800204da
movsxd r9, eax
mov rax, qword [r11 + 0x19d8]
lea r10, [rax + r9*8]
mov r8, qword [r10]
test r8, r8
je 0x1800204d0
cmp byte [r8 + 0x7f], dil
je 0x1800204d0
mov eax, dword [r8 + 0xc]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [r8 + 0xc], 0x18
setae al
test al, cl
jne 0x18002071d
sub r10, 8
sub r9, 1
jns 0x1800204a0
xor ecx, ecx
call fcn.1800266d0
mov ecx, dword [rbx + 0x19f4]
test ecx, ecx
jns 0x180020507
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x19f0]
test eax, eax
cmovg edx, eax
call fcn.18002d480
lea rcx, [rbx + 0x1b70]
mov dword [rbx + 0x19f0], edi
xor edx, edx
call fcn.18002d1b0
mov r9, qword [0x180061c18]
mov r13, qword [rbx + 0x1b80]
movsxd r12, dword [r9 + 0x1b60]
test r12d, r12d
je 0x1800205ee
mov ebp, edi
test r13, r13
je 0x1800205d0
test r12d, r12d
jle 0x1800205d0
mov r14, qword [r9 + 0x1b68]
mov rsi, rdi
add r14, 8
mov r15, rdi
nop
mov rax, qword [r14]
test rax, rax
je 0x1800205be
test dword [rax + 0xc], 0x1000000
jne 0x1800205be
xor cl, cl
mov r8, rsi
cmp rsi, r12
jge 0x1800205d0
mov rdx, r15
nop
test cl, cl
jne 0x1800205be
mov rax, qword [r9 + 0x1b68]
mov r10, qword [rax + rdx + 8]
test r10, r10
je 0x1800205ae
mov rax, qword [r13 + 0x360]
cmp qword [r10 + 0x360], rax
mov eax, 1
movzx ecx, cl
cmove ecx, eax
inc r8
add rdx, 0x30
cmp r8, r12
jl 0x180020580
test cl, cl
je 0x1800205d0
inc ebp
inc rsi
add r15, 0x30
add r14, 0x30
cmp ebp, r12d
jl 0x180020560
cmp ebp, dword [r9 + 0x1b60]
jge 0x1800205ee
lea rcx, [r9 + 0x1b60]
mov edx, ebp
call fcn.18002d1b0
mov r9, qword [0x180061c18]
mov dword [r9 + 0x2f68], edi
cmp byte [r9 + 0x2f64], dil
je 0x1800206b4
mov esi, dword [r9 + 0x1a54]
mov dword [r9 + 0x1e90], 7
mov ecx, dword [r9 + 0x74]
test ecx, ecx
js 0x18002062c
call fcn.180021340
test al, al
je 0x18002062c
mov byte [r9 + 0x2f64], dil
movss xmm0, dword [r9 + 0x43c]
ucomiss xmm0, xmm6
jp 0x18002064e
jne 0x18002064e
test esi, esi
je 0x18002064e
mov dword [r9 + 0x2f68], esi
mov byte [r9 + 0x2f64], dil
or dword [r9 + 0x1ab8], 0x40
mov dword [r9 + 0x1b10], 0x3f19999a
call fcn.180027b80
mov edx, esi
lea rcx, str.HoveredId:_0x_08X
call fcn.18003e4e0
lea rcx, str.Press_ESC_to_abort_picking.
call fcn.18003e4e0
mov rcx, qword [0x180061c18]
lea rdx, str.Click_to_break_in_debugger_
mov eax, 0x10
test esi, esi
cmove rdi, rax
add rcx, 0x1608
add rcx, rdi
call fcn.18003e5e0
call fcn.180026560
mov r9, qword [0x180061c18]
or dword [r9 + 0x1ab8], 2
lea rcx, str.DebugDefault
xor r8d, r8d
mov dword [r9 + 0x1ad8], 0x43c80000
xor edx, edx
mov dword [r9 + 0x1adc], 0x43c80000
mov dword [r9 + 0x1ac0], 4
call fcn.180024170
movaps xmm6, xmmword [rsp + 0x40]
lea r11, [rsp + 0x50]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm7, xmmword [rsp + 0x30]
mov byte [rbx + 0x19bd], 1
mov rbx, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rax, qword [r8 + 0x378]
test rax, rax
cmovne r8, rax
mov rcx, r8
jmp 0x1800204dc