Function at 0x18001d3c0
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 [0x180059bf8]
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm7
cmp byte [rbx + 0xcb], 0
je 0x18001d403
test byte [rbx + 0xc], 2
jne 0x18001d403
mov byte [rbx + 0xcb], 0
xor edi, edi
cmp byte [rbx + 0x2ef4], dil
jne 0x18001d466
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18001d45f
lea r8, [rsp + 0x80]
mov qword [rsp + 0x80], rdi
call fcn.180019730
mov rsi, rax
test rax, rax
je 0x18001d45f
mov rdx, qword [rsp + 0x80]
mov rcx, rax
call fcn.1800299f0
mov rcx, qword [0x180059bf8]
test rcx, rcx
je 0x18001d456
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 0x18001d4a5
subss xmm0, dword [rbx + 0x18]
comiss xmm6, xmm0
movss dword [rbx + 0x2ef8], xmm0
jb 0x18001d4a5
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18001d498
call fcn.180029c50
jmp 0x18001d49f
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 [0x180059bf8]
mov rcx, qword [rax + 0xb8]
test rcx, rcx
jne 0x18001d501
mov rax, qword [rax + 0xa8]
mov rcx, qword [rax + 0x48]
mov rcx, qword [rcx]
call fcn.1800242d0
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 0x18001d55f
mov dword [rbx + 0x1940], ecx
mov eax, ecx
cmp byte [rbx + 0x1601], dil
je 0x18001d571
or eax, 2
mov dword [rbx + 0x1940], eax
test byte [rbx + 0xc], 8
je 0x18001d580
or eax, 4
mov dword [rbx + 0x1940], eax
lea rbp, [rbx + 0x1d40]
mov rcx, rbp
call fcn.180032750
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 0x18001d5d2
inc r8d
test ecx, ecx
je 0x18001d5bd
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18001d5bf
mov eax, esi
cmp eax, r8d
lea rcx, [rbp + 0x70]
cmovg r8d, eax
mov edx, r8d
call fcn.18002ac10
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.180032b60
mov rcx, rbp
call fcn.180032d30
lea rbp, [rbx + 0x1de8]
mov rcx, rbp
call fcn.180032750
mov rax, qword [rbx + 0xa8]
mov r8d, dword [rbp + 0x74]
mov ecx, dword [rbp + 0x70]
mov r15, qword [rax + 8]
cmp ecx, r8d
jne 0x18001d63a
inc ecx
test r8d, r8d
je 0x18001d62a
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.18002ac10
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.180032b60
mov rcx, rbp
call fcn.180032d30
mov rdx, qword [0x180059bf8]
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 0x18001d6c4
mov eax, dword [rbx + 0x1eb4]
cmp eax, dword [rbx + 0x1a60]
jne 0x18001d6c4
cmp dword [rdx + 0x1a60], eax
jne 0x18001d6b5
mov dword [rdx + 0x1a64], eax
cmp dword [rdx + 0x1a9c], eax
jne 0x18001d6c4
mov byte [rdx + 0x1aa0], 1
cmp dword [rbx + 0x1a54], edi
jne 0x18001d6d4
mov dword [rbx + 0x1a58], edi
jmp 0x18001d6e6
mov eax, dword [rbx + 0x1a4c]
test eax, eax
je 0x18001d6ec
cmp dword [rbx + 0x1a60], eax
jne 0x18001d6ec
mov dword [rbx + 0x1a5c], edi
mov eax, dword [rbx + 0x1a4c]
test eax, eax
je 0x18001d726
movss xmm1, dword [rbx + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rbx + 0x1a58]
movss dword [rbx + 0x1a58], xmm0
cmp dword [rbx + 0x1a60], eax
je 0x18001d726
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 0x18001d79e
cmp dword [rbx + 0x1a9c], eax
jne 0x18001d79e
test eax, eax
je 0x18001d79e
mov ecx, dword [rdx + 0x1a60]
test ecx, ecx
setne al
mov byte [rdx + 0x1a6c], al
test ecx, ecx
je 0x18001d775
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 0x18001d7bd
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 0x18001d822
cmp ecx, eax
je 0x18001d822
mov dword [rbx + 0x2e90], edi
test ecx, ecx
jne 0x18001d834
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 [0x180051c14]
lea rcx, [rbx + 0x14d]
lea rax, [rbx + 0x4a4]
mov r8d, 0x80
cmp byte [rcx - 1], dil
je 0x18001d8a3
movss xmm0, dword [rax - 4]
comiss xmm6, xmm0
jbe 0x18001d89c
movaps xmm0, xmm6
jmp 0x18001d8a6
addss xmm0, dword [rbx + 0x18]
jmp 0x18001d8a6
movaps xmm0, xmm1
movss dword [rax - 4], xmm0
cmp byte [rcx], dil
je 0x18001d8c5
movss xmm0, dword [rax]
comiss xmm6, xmm0
jbe 0x18001d8be
movaps xmm0, xmm6
jmp 0x18001d8c8
addss xmm0, dword [rbx + 0x18]
jmp 0x18001d8c8
movaps xmm0, xmm1
movss dword [rax], xmm0
cmp byte [rcx + 1], dil
je 0x18001d8e8
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
jbe 0x18001d8e1
movaps xmm0, xmm6
jmp 0x18001d8eb
addss xmm0, dword [rbx + 0x18]
jmp 0x18001d8eb
movaps xmm0, xmm1
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], dil
je 0x18001d90c
movss xmm0, dword [rax + 8]
comiss xmm6, xmm0
jbe 0x18001d905
movaps xmm0, xmm6
jmp 0x18001d90f
addss xmm0, dword [rbx + 0x18]
jmp 0x18001d90f
movaps xmm0, xmm1
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x18001d887
call fcn.180026f90
call fcn.18001c6b0
movsxd rax, dword [rbx + 0x314c]
movss xmm1, dword [rbx + 0x18]
movss xmm7, dword [0x180051c08]
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 0x18001d9b2
divss xmm1, dword [0x180051bdc]
movss xmm0, dword [0x180051b38]
divss xmm0, xmm1
jmp 0x18001d9b5
movaps xmm0, xmm7
movss dword [rbx + 0x3a8], xmm0
call fcn.18001cf60
call fcn.18001c1b0
mov r11, qword [0x180059bf8]
mov eax, dword [r11 + 0x1b60]
sub eax, 1
js 0x18001da0e
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 0x18001da04
test dword [rax + 0xc], 0x8000000
jne 0x18001da24
sub r8, 0x30
sub rdx, 1
jns 0x18001d9f3
cmp qword [rbx + 0x1bc8], rdi
je 0x18001da43
movss xmm0, dword [rbx + 0x1be4]
comiss xmm0, xmm6
jbe 0x18001da43
movss xmm1, dword [rbx + 0x18]
mulss xmm1, dword [0x180051ba4]
addss xmm1, dword [rbx + 0x1d38]
minss xmm1, dword [0x180051b38]
jmp 0x18001da60
movss xmm0, dword [rbx + 0x18]
mulss xmm0, dword [0x180051bb0]
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.18001ca20
mov r10, qword [rbx + 0x1b80]
test r10, r10
je 0x18001dad6
cmp byte [r10 + 0x7e], dil
je 0x18001dad6
test dword [r10 + 0xc], 0x40000
jne 0x18001dad6
cmp byte [rbx + 0x148], dil
jne 0x18001dad6
mov ecx, dword [r11 + 0x3c]
test ecx, ecx
js 0x18001dad6
call fcn.18001eb30
test al, al
je 0x18001dad6
mov al, 1
jmp 0x18001dad8
xor al, al
mov byte [rbx + 0x1cd8], al
cmp dword [rbx + 0x1a60], edi
jne 0x18001db3b
test al, al
je 0x18001db3b
mov qword [rbx + 0x1cc0], r10
mov dword [rbx + 0x1cd0], 0x7fffffff
cmp dword [rbx + 0x1b88], edi
je 0x18001db2a
mov ecx, dword [rbx + 0x1bf0]
cmp ecx, 0x7fffffff
je 0x18001db2a
cmp byte [rbx + 0x149], dil
mov eax, 2
cmovne eax, edi
add eax, ecx
mov dword [rbx + 0x1cd4], eax
jmp 0x18001db3b
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 0x18001dbd0
mov eax, dword [rbx + 0x1cd0]
mov qword [rbx + 0x1cb8], r8
cmp eax, 0x7fffffff
je 0x18001db8f
mov ecx, dword [r8 + 0x178]
cmp ecx, 0xffffffff
je 0x18001db8f
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rbx + 0x1cc8], edx
mov eax, dword [rbx + 0x1cd4]
cmp eax, 0x7fffffff
je 0x18001dbb5
mov ecx, dword [r8 + 0x17c]
cmp ecx, 0xffffffff
je 0x18001dbb5
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 0x18001dbf7
movsd xmm7, qword [rbx + 0x19a8]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov esi, edi
cmp dword [rbx + 0x19c0], edi
je 0x18001dc64
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 0x18001dc4f
cmp byte [rcx + 0x3a8], dil
jne 0x18001dc4f
comiss xmm7, dword [rcx + 0x254]
jbe 0x18001dc4f
call fcn.18001b8e0
inc esi
add r14, 8
cmp esi, dword [rbx + 0x19c0]
jne 0x18001dc10
mov r11, qword [0x180059bf8]
mov rax, qword [rbx + 0x1b80]
test rax, rax
je 0x18001dcd1
cmp byte [rax + 0x7f], dil
jne 0x18001dcd1
mov eax, dword [r11 + 0x19d0]
sub eax, 1
js 0x18001dcca
movsxd r9, eax
mov rax, qword [r11 + 0x19d8]
lea r10, [rax + r9*8]
mov r8, qword [r10]
test r8, r8
je 0x18001dcc0
cmp byte [r8 + 0x7f], dil
je 0x18001dcc0
mov eax, dword [r8 + 0xc]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [r8 + 0xc], 0x18
setae al
test al, cl
jne 0x18001df0d
sub r10, 8
sub r9, 1
jns 0x18001dc90
xor ecx, ecx
call fcn.180023e60
mov ecx, dword [rbx + 0x19f4]
test ecx, ecx
jns 0x18001dcf7
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.18002ac10
lea rcx, [rbx + 0x1b70]
mov dword [rbx + 0x19f0], edi
xor edx, edx
call fcn.18002a940
mov r9, qword [0x180059bf8]
mov r13, qword [rbx + 0x1b80]
movsxd r12, dword [r9 + 0x1b60]
test r12d, r12d
je 0x18001ddde
mov ebp, edi
test r13, r13
je 0x18001ddc0
test r12d, r12d
jle 0x18001ddc0
mov r14, qword [r9 + 0x1b68]
mov rsi, rdi
add r14, 8
mov r15, rdi
nop
mov rax, qword [r14]
test rax, rax
je 0x18001ddae
test dword [rax + 0xc], 0x1000000
jne 0x18001ddae
xor cl, cl
mov r8, rsi
cmp rsi, r12
jge 0x18001ddc0
mov rdx, r15
nop
test cl, cl
jne 0x18001ddae
mov rax, qword [r9 + 0x1b68]
mov r10, qword [rax + rdx + 8]
test r10, r10
je 0x18001dd9e
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 0x18001dd70
test cl, cl
je 0x18001ddc0
inc ebp
inc rsi
add r15, 0x30
add r14, 0x30
cmp ebp, r12d
jl 0x18001dd50
cmp ebp, dword [r9 + 0x1b60]
jge 0x18001ddde
lea rcx, [r9 + 0x1b60]
mov edx, ebp
call fcn.18002a940
mov r9, qword [0x180059bf8]
mov dword [r9 + 0x2f68], edi
cmp byte [r9 + 0x2f64], dil
je 0x18001dea4
mov esi, dword [r9 + 0x1a54]
mov dword [r9 + 0x1e90], 7
mov ecx, dword [r9 + 0x74]
test ecx, ecx
js 0x18001de1c
call fcn.18001eb30
test al, al
je 0x18001de1c
mov byte [r9 + 0x2f64], dil
movss xmm0, dword [r9 + 0x43c]
ucomiss xmm0, xmm6
jp 0x18001de3e
jne 0x18001de3e
test esi, esi
je 0x18001de3e
mov dword [r9 + 0x2f68], esi
mov byte [r9 + 0x2f64], dil
or dword [r9 + 0x1ab8], 0x40
mov dword [r9 + 0x1b10], 0x3f19999a
call fcn.180025310
mov edx, esi
lea rcx, str.HoveredId:_0x_08X
call fcn.18003bb60
lea rcx, str.Press_ESC_to_abort_picking.
call fcn.18003bb60
mov rcx, qword [0x180059bf8]
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.18003bc60
call fcn.180023cf0
mov r9, qword [0x180059bf8]
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.180021900
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 0x18001dccc