Function at 0x180031d20
Capabilities:
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
mov rdi, qword [0x18010fb80]
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm7
cmp byte [rdi + 0xcb], 0
je 0x180031d53
test byte [rdi + 0xc], 2
jne 0x180031d53
mov byte [rdi + 0xcb], 0
call fcn.180037b80
inc dword [rdi + 0x1a18]
xor esi, esi
movss xmm0, dword [rdi + 0x18]
cvtps2pd xmm0, xmm0
mov byte [rdi + 0x1a24], 1
mov dword [rdi + 0x2ff8], esi
mov dword [rdi + 0x1a88], esi
addsd xmm0, qword [rdi + 0x1a10]
movsd qword [rdi + 0x1a10], xmm0
mov ecx, dword [rdi + 0x3014]
test ecx, ecx
jns 0x180031db1
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x3010]
test eax, eax
cmovg edx, eax
call fcn.180039450
movss xmm7, dword [0x18009d3b8]
xorps xmm6, xmm6
mov dword [rdi + 0x3010], esi
movsxd rax, dword [rdi + 0x3284]
movss xmm1, dword [rdi + 0x18]
movaps xmm0, xmm1
subss xmm0, dword [rdi + rax*4 + 0x30a4]
addss xmm0, dword [rdi + 0x3288]
movss dword [rdi + 0x3288], xmm0
movss dword [rdi + rax*4 + 0x30a4], xmm1
mov eax, 0x88888889
mov ecx, dword [rdi + 0x3284]
movss xmm1, dword [rdi + 0x3288]
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 + 0x3284], ecx
jbe 0x180031e3c
divss xmm1, dword [0x18009e2b0]
movss xmm0, dword [0x18009d31c]
divss xmm0, xmm1
jmp 0x180031e3f
movaps xmm0, xmm7
mov rax, qword [rdi + 0xa8]
movss dword [rdi + 0x3a8], xmm0
mov byte [rax], 1
mov rax, qword [0x18010fb80]
mov rcx, qword [rax + 0xb8]
test rcx, rcx
jne 0x180031e72
mov rax, qword [rax + 0xa8]
mov rcx, qword [rax + 0x48]
mov rcx, qword [rcx]
call fcn.1800362a0
movss xmm1, dword [rdi + 0x14]
lea rcx, [rdi + 0x1938]
movss xmm0, dword [rdi + 0x10]
mov eax, dword [rdi + 0x161c]
mov qword [rsp + 0x20], rsi
movups xmm2, xmmword [rsp + 0x20]
mov dword [rdi + 0x194c], eax
shufps xmm2, xmm2, 0xd2
movss xmm2, xmm0
shufps xmm2, xmm2, 0x27
movss xmm2, xmm1
movss xmm1, dword [rdi + 0x1620]
shufps xmm2, xmm2, 0x39
movups xmmword [rdi + 0x1954], xmm2
call fcn.180041250
mov r8d, esi
mov dword [rdi + 0x1964], esi
cmp byte [rdi + 0x1618], sil
je 0x180031ee8
mov dword [rdi + 0x1964], 1
mov r8d, 1
mov edx, r8d
cmp byte [rdi + 0x1619], sil
je 0x180031f0e
mov rax, qword [rdi + 0x1928]
mov rcx, qword [rax + 0x40]
test byte [rcx + 4], 4
jne 0x180031f0e
or edx, 2
mov dword [rdi + 0x1964], edx
cmp byte [rdi + 0x161a], sil
je 0x180031f20
or edx, 4
mov dword [rdi + 0x1964], edx
test byte [rdi + 0xc], 8
je 0x180031f2f
or edx, 8
mov dword [rdi + 0x1964], edx
lea rcx, [rdi + 0x1df0]
call fcn.180042080
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1df0]
mov rdx, qword [rdx + 8]
call fcn.18003ff50
lea rcx, [rdi + 0x1df0]
call fcn.18003fea0
lea rcx, [rdi + 0x1ed0]
call fcn.180042080
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0x1ed0]
mov rdx, qword [rdx + 8]
call fcn.18003ff50
lea rcx, [rdi + 0x1ed0]
call fcn.18003fea0
mov byte [rdi + 0x1d90], sil
mov qword [rdi + 0x1d98], rsi
mov qword [rdi + 0x1da4], rsi
mov dword [rdi + 0x1da0], esi
mov qword [rdi + 0x1dbc], rsi
mov qword [rdi + 0x1db4], rsi
mov qword [rdi + 0x1dac], rsi
cmp byte [rdi + 0x1fb4], sil
je 0x180031ff8
mov eax, dword [rdi + 0x1fd4]
cmp eax, dword [rdi + 0x1ae0]
jne 0x180031ff8
mov rcx, qword [0x18010fb80]
cmp dword [rcx + 0x1ae0], eax
jne 0x180031fe9
mov dword [rcx + 0x1ae4], eax
cmp dword [rcx + 0x1b20], eax
jne 0x180031ff8
mov byte [rcx + 0x1b24], 1
lea rax, [rdi + 0x1acc]
cmp dword [rdi + 0x1ad0], esi
jne 0x18003200f
mov dword [rdi + 0x1ad8], esi
jmp 0x180032020
mov edx, dword [rax]
mov rcx, rax
test edx, edx
je 0x180032029
cmp dword [rdi + 0x1ae0], edx
jne 0x180032029
mov dword [rdi + 0x1adc], esi
mov rcx, rax
mov eax, dword [rcx]
test eax, eax
je 0x18003205f
movss xmm1, dword [rdi + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rdi + 0x1ad8]
movss dword [rdi + 0x1ad8], xmm0
cmp dword [rdi + 0x1ae0], eax
je 0x18003205f
addss xmm1, dword [rdi + 0x1adc]
movss dword [rdi + 0x1adc], xmm1
mov dword [rdi + 0x1ad0], eax
mov eax, dword [rdi + 0x1ae0]
mov dword [rcx], esi
mov word [rdi + 0x1ad4], si
cmp dword [rdi + 0x1ae4], eax
je 0x18003208d
cmp dword [rdi + 0x1b20], eax
jne 0x18003208d
test eax, eax
je 0x18003208d
call fcn.180028d30
mov ecx, dword [rdi + 0x1ae0]
test ecx, ecx
je 0x1800320ac
movss xmm0, dword [rdi + 0x1ae8]
addss xmm0, dword [rdi + 0x18]
movss dword [rdi + 0x1ae8], xmm0
mov rax, qword [rdi + 0x1b10]
movss xmm0, dword [rdi + 0x1b34]
addss xmm0, dword [rdi + 0x18]
mov qword [rdi + 0x1b28], rax
movzx eax, byte [rdi + 0x1af0]
mov byte [rdi + 0x1b25], al
mov eax, dword [rdi + 0x2fb8]
movss dword [rdi + 0x1b34], xmm0
mov dword [rdi + 0x1b20], ecx
mov dword [rdi + 0x1ae4], esi
mov byte [rdi + 0x1af1], sil
mov byte [rdi + 0x1b24], sil
mov byte [rdi + 0x1aec], sil
test eax, eax
je 0x180032111
cmp ecx, eax
je 0x180032111
mov dword [rdi + 0x2fb8], esi
test ecx, ecx
jne 0x180032123
mov qword [rdi + 0x1af4], rsi
mov qword [rdi + 0x1b00], rsi
mov eax, dword [rdi + 0x2024]
mov dword [rdi + 0x2028], eax
mov eax, esi
mov qword [rdi + 0x2020], 0x7f7fffff
mov word [rdi + 0x1fb5], si
mov dword [rdi + 0x2030], esi
mov r8, qword [0x18010fb80]
cmp byte [r8 + 0x148], sil
setne al
mov ecx, eax
or ecx, 2
cmp byte [r8 + 0x149], sil
cmove ecx, eax
mov edx, ecx
or edx, 4
cmp byte [r8 + 0x14a], sil
cmove edx, ecx
lea rcx, [rdi + 0xca8]
mov eax, edx
or eax, 8
cmp byte [r8 + 0x14b], sil
mov r8d, 0x800
cmove eax, edx
lea rdx, [rdi + 0x4a8]
mov dword [rdi + 0x3c8], eax
call fcn.180093d20
movss xmm1, dword [0x18009d3bc]
lea rcx, [rdi + 0x14d]
lea rax, [rdi + 0x4ac]
mov r8d, 0x80
cmp byte [rcx - 1], sil
je 0x1800321de
movss xmm0, dword [rax - 4]
comiss xmm6, xmm0
jbe 0x1800321d7
movaps xmm0, xmm6
jmp 0x1800321e1
addss xmm0, dword [rdi + 0x18]
jmp 0x1800321e1
movaps xmm0, xmm1
movss dword [rax - 4], xmm0
cmp byte [rcx], sil
je 0x180032200
movss xmm0, dword [rax]
comiss xmm6, xmm0
jbe 0x1800321f9
movaps xmm0, xmm6
jmp 0x180032203
addss xmm0, dword [rdi + 0x18]
jmp 0x180032203
movaps xmm0, xmm1
movss dword [rax], xmm0
cmp byte [rcx + 1], sil
je 0x180032223
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
jbe 0x18003221c
movaps xmm0, xmm6
jmp 0x180032226
addss xmm0, dword [rdi + 0x18]
jmp 0x180032226
movaps xmm0, xmm1
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], sil
je 0x180032247
movss xmm0, dword [rax + 8]
comiss xmm6, xmm0
jbe 0x180032240
movaps xmm0, xmm6
jmp 0x18003224a
addss xmm0, dword [rdi + 0x18]
jmp 0x18003224a
movaps xmm0, xmm1
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x1800321c2
call fcn.18002f6b0
call fcn.180037160
call fcn.180036e10
mov rbx, qword [0x18010fb80]
mov r9, qword [rbx + 0x1ab0]
test r9, r9
je 0x18003237c
mov eax, dword [rbx + 0x1ae0]
mov dword [rbx + 0x1ae4], eax
cmp dword [rbx + 0x1b20], eax
jne 0x1800322a2
mov byte [rbx + 0x1b24], 1
mov r9, qword [r9 + 0x3c0]
cmp byte [rbx + 0x138], sil
je 0x18003236e
mov rcx, qword [0x18010fb80]
lea rax, [rbx + 0x130]
mov rdx, rax
test rax, rax
jne 0x1800322d3
lea rdx, [rcx + 0x130]
movss xmm0, dword [rdx]
movss xmm1, dword [0x18009e2c4]
comiss xmm0, xmm1
movss xmm2, dword [rdx + 4]
jb 0x18003236e
comiss xmm2, xmm1
jb 0x18003236e
movss xmm1, dword [rax]
subss xmm1, dword [rbx + 0x1b08]
movss xmm2, dword [rax + 4]
subss xmm2, dword [rbx + 0x1b0c]
movss xmm0, dword [r9 + 0x10]
ucomiss xmm0, xmm1
movss dword [rsp + 0x70], xmm1
movss dword [rsp + 0x74], xmm2
jp 0x180032331
jne 0x180032331
movss xmm0, dword [r9 + 0x14]
ucomiss xmm0, xmm2
jp 0x180032331
je 0x180032360
test dword [r9 + 0xc], 0x100
jne 0x18003234d
comiss xmm6, dword [rcx + 0x3034]
jb 0x18003234d
mov eax, dword [rcx + 0x1c]
mov dword [rcx + 0x3034], eax
mov r8d, 1
lea rdx, [rsp + 0x70]
mov rcx, r9
call fcn.180036b60
mov rcx, qword [rbx + 0x1ab0]
call fcn.18002b0c0
jmp 0x1800323b6
call fcn.180028d30
mov qword [rbx + 0x1ab0], rsi
jmp 0x1800323b6
mov rcx, qword [rbx + 0x1b10]
test rcx, rcx
je 0x1800323b6
mov eax, dword [rbx + 0x1ae0]
cmp dword [rcx + 0x4c], eax
jne 0x1800323b6
mov dword [rbx + 0x1ae4], eax
cmp dword [rbx + 0x1b20], eax
jne 0x1800323a8
mov byte [rbx + 0x1b24], 1
cmp byte [rbx + 0x138], sil
jne 0x1800323b6
call fcn.180028d30
mov r8, qword [0x18010fb80]
mov eax, dword [r8 + 0x1bf0]
sub eax, 1
js 0x1800323fd
mov r8, qword [r8 + 0x1bf8]
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 0x1800323f3
test dword [rax + 0xc], 0x8000000
jne 0x180032413
sub r8, 0x30
sub rdx, 1
jns 0x1800323e2
cmp qword [rdi + 0x1d40], rsi
je 0x180032432
movss xmm0, dword [rdi + 0x1d5c]
comiss xmm0, xmm6
jbe 0x180032432
movss xmm1, dword [rdi + 0x18]
mulss xmm1, dword [0x18009d368]
addss xmm1, dword [rdi + 0x1de8]
minss xmm1, dword [0x18009d31c]
jmp 0x18003244f
movss xmm0, dword [rdi + 0x18]
mulss xmm0, dword [0x18009d370]
movss xmm1, dword [rdi + 0x1de8]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [rdi + 0x1de8], xmm1
mov dword [rdi + 0x1fb0], esi
mov qword [rdi + 0x3290], 0xffffffffffffffff
mov dword [rdi + 0x328c], 0xffffffff
mov dword [rdi + 0x3020], 0x3f800000
mov dword [rdi + 0x3024], 0x3f800000
call fcn.180037770
mov rbx, qword [0x18010fb80]
mov rbp, qword [rbx + 0x1c10]
test rbp, rbp
je 0x1800324cf
cmp byte [rbp + 0x86], sil
je 0x1800324cf
test dword [rbp + 0xc], 0x40000
jne 0x1800324cf
cmp byte [rbx + 0x148], sil
jne 0x1800324cf
mov ecx, dword [rbx + 0x3c]
test ecx, ecx
js 0x1800324cf
mov dl, 1
call fcn.18002dae0
test al, al
je 0x1800324cf
mov al, 1
jmp 0x1800324d1
xor al, al
mov byte [rbx + 0x1d88], al
cmp dword [rbx + 0x1ae0], esi
jne 0x180032534
test al, al
je 0x180032534
mov qword [rbx + 0x1d70], rbp
mov dword [rbx + 0x1d80], 0x7fffffff
cmp dword [rbx + 0x1c18], esi
je 0x180032523
mov ecx, dword [rbx + 0x1c60]
cmp ecx, 0x7fffffff
je 0x180032523
cmp byte [rbx + 0x149], sil
mov eax, 2
cmovne eax, esi
add eax, ecx
mov dword [rbx + 0x1d84], eax
jmp 0x180032534
movzx eax, byte [rbx + 0x149]
neg al
sbb ecx, ecx
mov dword [rbx + 0x1d84], ecx
mov r8, qword [rbx + 0x1d70]
mov qword [rbx + 0x1d68], rsi
mov dword [rbx + 0x1d7c], 0x7fffffff
mov dword [rbx + 0x1d78], 0x7fffffff
test r8, r8
je 0x1800325c9
mov eax, dword [rbx + 0x1d80]
mov qword [rbx + 0x1d68], r8
cmp eax, 0x7fffffff
je 0x180032588
mov ecx, dword [r8 + 0x1b8]
cmp ecx, 0xffffffff
je 0x180032588
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rbx + 0x1d78], edx
mov eax, dword [rbx + 0x1d84]
cmp eax, 0x7fffffff
je 0x1800325ae
mov ecx, dword [r8 + 0x1bc]
cmp ecx, 0xffffffff
je 0x1800325ae
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [rbx + 0x1d7c], edx
mov qword [rbx + 0x1d70], rsi
mov dword [rbx + 0x1d84], 0x7fffffff
mov dword [rbx + 0x1d80], 0x7fffffff
mov dword [rbx + 0x1c60], 0x7fffffff
movss xmm0, dword [rdi + 0xd0]
comiss xmm0, xmm6
jb 0x1800325f0
movsd xmm7, qword [rdi + 0x1a10]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov ebx, esi
mov qword [rsp + 0x78], r14
cmp dword [rdi + 0x1a38], esi
je 0x180032658
mov r14, rsi
mov rax, qword [rdi + 0x1a40]
mov rcx, qword [r14 + rax]
movzx eax, byte [rcx + 0x86]
mov byte [rcx + 0x87], al
mov word [rcx + 0x92], si
mov byte [rcx + 0x86], sil
mov byte [rcx + 0x88], sil
test al, al
jne 0x18003264a
cmp byte [rcx + 0x408], sil
jne 0x18003264a
comiss xmm7, dword [rcx + 0x29c]
jbe 0x18003264a
call fcn.18002b3c0
inc ebx
add r14, 8
cmp ebx, dword [rdi + 0x1a38]
jne 0x180032602
mov rax, qword [rdi + 0x1c10]
movaps xmm7, xmmword [rsp + 0x30]
test rax, rax
je 0x18003276e
cmp byte [rax + 0x87], sil
jne 0x18003276e
mov r11, qword [0x18010fb80]
mov eax, dword [r11 + 0x1a48]
sub eax, 1
js 0x1800326dd
movsxd r9, eax
mov rax, qword [r11 + 0x1a50]
lea r10, [rax + r9*8]
nop dword [rax + rax]
mov r8, qword [r10]
test r8, r8
je 0x1800326d3
cmp byte [r8 + 0x87], sil
je 0x1800326d3
mov eax, dword [r8 + 0xc]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [r8 + 0xc], 0x18
setae al
test al, cl
jne 0x180032855
sub r10, 8
sub r9, 1
jns 0x1800326a0
mov rbx, r11
cmp qword [r11 + 0x1c10], rsi
je 0x180032713
mov qword [r11 + 0x1c10], rsi
mov byte [r11 + 0x1c69], sil
mov qword [r11 + 0x1c18], rsi
mov byte [r11 + 0x1c64], sil
mov dword [r11 + 0x1c5c], esi
mov r11, qword [0x18010fb80]
lea r14, [r11 + 0x1bf0]
cmp dword [r14], 1
jl 0x180032743
mov ecx, dword [r14 + 4]
test ecx, ecx
jns 0x180032740
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
mov rcx, r14
test eax, eax
cmovg edx, eax
call fcn.180039590
mov dword [r14], esi
cmp dword [rbx + 0x1ae0], esi
je 0x18003276e
mov rax, qword [rbx + 0x1b10]
test rax, rax
je 0x18003276e
cmp qword [rax + 0x3c0], rsi
je 0x18003276e
cmp byte [rbx + 0x1aee], sil
jne 0x18003276e
call fcn.180028d30
mov ecx, dword [rdi + 0x1a6c]
test ecx, ecx
jns 0x180032794
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x1a68]
test eax, eax
cmovg edx, eax
call fcn.1800394f0
mov dword [rdi + 0x1a68], esi
mov ecx, dword [rdi + 0x1c04]
test ecx, ecx
jns 0x1800327c0
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x1c00]
test eax, eax
cmovg edx, eax
call fcn.180039590
mov dword [rdi + 0x1c00], esi
mov rbp, qword [0x18010fb80]
mov r10, qword [rdi + 0x1c10]
mov r9d, dword [rbp + 0x1bf0]
test r9d, r9d
je 0x1800328c9
mov ebx, esi
test r10, r10
je 0x180032886
test r9d, r9d
jle 0x180032886
mov r11, qword [rbp + 0x1bf8]
mov r14, rsi
add r11, 8
mov rax, qword [r11]
test rax, rax
je 0x180032877
test dword [rax + 0xc], 0x1000000
jne 0x180032877
mov edx, ebx
cmp ebx, r9d
jge 0x1800328c9
mov rcx, qword [rbp + 0x1bf8]
add rcx, 8
add rcx, r14
mov r8, qword [rcx]
test r8, r8
je 0x180032848
mov rax, qword [r10 + 0x3c0]
cmp qword [r8 + 0x3c0], rax
je 0x180032877
inc edx
add rcx, 0x30
cmp edx, r9d
jl 0x180032830
jmp 0x18003288b
mov rcx, qword [r8 + 0x3d8]
test rcx, rcx
je 0x18003286a
cmp byte [rcx + 0x87], sil
jne 0x18003286d
mov rcx, r8
call fcn.18002b0c0
jmp 0x18003276e
inc ebx
add r14, 0x30
add r11, 0x30
cmp ebx, r9d
jl 0x180032806
cmp ebx, r9d
jge 0x1800328c9
mov ecx, dword [rbp + 0x1bf4]
cmp ebx, ecx
jle 0x1800328bc
test ecx, ecx
je 0x1800328a4
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1800328a9
mov eax, 8
cmp eax, ebx
lea rcx, [rbp + 0x1bf0]
mov edx, ebx
cmovg edx, eax
call fcn.180039590
mov dword [rbp + 0x1bf0], ebx
mov rbp, qword [0x18010fb80]
mov dword [rbp + 0x30a0], esi
cmp byte [rbp + 0x309c], sil
je 0x1800329a7
mov rax, qword [0x18010fb80]
mov r14d, dword [rbp + 0x1ad0]
mov dword [rax + 0x1fb0], 7
mov rbx, qword [0x18010fb80]
mov ecx, dword [rbx + 0x74]
test ecx, ecx
js 0x18003291b
mov dl, 1
call fcn.18002dae0
test al, al
je 0x18003291b
mov byte [rbp + 0x309c], sil
mov rbx, qword [0x18010fb80]
movss xmm0, dword [rbx + 0x444]
ucomiss xmm0, xmm6
jp 0x180032944
jne 0x180032944
test r14d, r14d
je 0x180032944
mov dword [rbp + 0x30a0], r14d
mov byte [rbp + 0x309c], sil
mov rbx, qword [0x18010fb80]
or dword [rbx + 0x1b38], 0x40
xor edx, edx
xor ecx, ecx
mov dword [rbx + 0x1b98], 0x3f19999a
call fcn.180027d70
mov edx, r14d
lea rcx, str.HoveredId:_0x_08X
call fcn.18005b080
lea rcx, str.Press_ESC_to_abort_picking.
call fcn.18005b080
mov rcx, qword [0x18010fb80]
lea rdx, str.Click_to_break_in_debugger_
mov eax, 0x10
test r14d, r14d
cmove rsi, rax
add rcx, 0x1624
add rcx, rsi
call fcn.18005b0b0
call fcn.1800299d0
mov byte [rdi + 0x1a25], 1
lea rcx, str.DebugDefault
mov rax, qword [0x18010fb80]
xor r8d, r8d
xor edx, edx
or dword [rax + 0x1b38], 2
mov dword [rax + 0x1b58], 0x43c80000
mov dword [rax + 0x1b5c], 0x43c80000
mov dword [rax + 0x1b40], 4
mov r14, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
jmp fcn.180025240