Function at 0x180038950
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rsi, qword [0x1801c1228]
xor ebp, ebp
mov r12d, ecx
mov r15d, ebp
mov r14, qword [rsi + 0x1c20]
test cl, 0x10
jne 0x180038b45
mov edi, dword [rsi + 0x1cd8]
test edi, edi
je 0x180038a1a
cmp dword [rsi + 0x1c68], edi
jne 0x180038b3e
mov eax, dword [rsi + 0x1ca4]
cmp eax, 0xffffffff
cmove eax, ebp
movsxd rbp, eax
cmp byte [rbp + rsi + 0x130], r15b
je 0x180038b3e
cmp byte [r14 + 0x93], r15b
jne 0x180038b3e
lea rcx, [r14 + 0xc8]
mov byte [rsi + 0x1c75], r15b
call fcn.180050520
mov rbx, qword [0x1801c1228]
mov r14, rbx
mov r15d, dword [rax]
test ebp, ebp
js 0x1800389f4
cmp ebp, 5
jl 0x180038aeb
mov r8d, 0x10f4
lea rdx, str.C:TD_FilesTDFiveMV4.2imguiimgui.cpp
lea rcx, str.button___0__button_____int__sizeof_g.IO.MouseDown____sizeof__g.IO.MouseDown____
call qword [0x1800e6ad0]
mov rbx, qword [0x1801c1228]
jmp 0x180038aeb
cmp byte [rsi + 0x130], bpl
je 0x180038b3e
cmp byte [r14 + 0x93], bpl
jne 0x180038b3e
test byte [rsi + 0x1ce0], 1
jne 0x180038a56
cmp dword [rsi + 0x1c68], ebp
je 0x180038b3e
cmp qword [rsi + 0x1c98], r14
jne 0x180038b3e
test r12b, 8
jne 0x180038a7d
mov r8d, 0x25bc
lea rdx, str.C:TD_FilesTDFiveMV4.2imguiimgui.cpp
lea rcx, [0x18015cf6c]
call qword [0x1800e6ad0]
xor al, al
jmp 0x180038c51
lea rdx, [rsi + 0x1ce4]
mov rcx, r14
call fcn.18003e4e0
mov edx, eax
mov dword [rsi + 0x1cd8], eax
lea rcx, [rsi + 0x1ce4]
mov edi, eax
call fcn.180042050
movzx ebx, al
test al, al
je 0x180038ac4
cmp byte [rsi + 0x420], bpl
je 0x180038ac4
mov rdx, r14
mov ecx, edi
call fcn.18004c600
mov rcx, r14
call fcn.18003dd00
cmp dword [rsi + 0x1c68], edi
jne 0x180038b3e
lea rcx, [r14 + 0xc8]
mov byte [rsi + 0x1c75], bl
call fcn.180050520
mov rbx, qword [0x1801c1228]
mov r14, rbx
mov r15d, dword [rax]
movsxd r13, ebp
cmp byte [r14 + r13 + 0x130], 0
jne 0x180038afd
xor bl, bl
jmp 0x180038b35
cmp ebp, 4
jbe 0x180038b1c
mov r8d, 0x10eb
lea rdx, str.C:TD_FilesTDFiveMV4.2imguiimgui.cpp
lea rcx, str.button___0__button_____int__sizeof_g.IO.MouseDown____sizeof__g.IO.MouseDown____
call qword [0x1800e6ad0]
movss xmm1, dword [rbx + 0x38]
movss xmm0, dword [rbx + r13*4 + 0x4a4]
mulss xmm1, xmm1
comiss xmm0, xmm1
setae bl
call fcn.18004c6d0
test bl, bl
jne 0x180038b93
xor al, al
jmp 0x180038c51
mov r9d, 0xffffffff
lea rdx, [0x180160d89]
mov edi, r9d
lea r10, [0x18015c410]
mov r8b, 0x23
nop
cmp r8b, 0x23
jne 0x180038b73
cmp byte [rdx], r8b
jne 0x180038b73
cmp byte [rdx + 1], r8b
cmove edi, r9d
movzx ecx, dil
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr edi, 8
inc rdx
xor edi, dword [r10 + rcx*4]
test r8b, r8b
jne 0x180038b60
not edi
cmp byte [rsi + 0x1f8c], 0
jne 0x180038bef
test edi, edi
jne 0x180038bba
mov r8d, 0x25e2
lea rdx, str.C:TD_FilesTDFiveMV4.2imguiimgui.cpp
lea rcx, str.source_id___0
call qword [0x1800e6ad0]
call fcn.18003ab60
mov dword [rsi + 0x1fac], edi
mov dword [rsi + 0x1fb0], r15d
mov byte [rsi + 0x1f8c], 1
mov dword [rsi + 0x1f90], r12d
mov dword [rsi + 0x1f98], ebp
cmp edi, dword [rsi + 0x1c68]
jne 0x180038bef
mov byte [rsi + 0x1c76], 1
mov eax, dword [rsi + 0x1ba0]
mov dword [rsi + 0x1f94], eax
mov byte [rsi + 0x1f8d], 1
test r12b, 1
jne 0x180038c42
xor edx, edx
xor ecx, ecx
call fcn.180039070
cmp dword [rsi + 0x2000], 0
je 0x180038c42
test dword [rsi + 0x1ff4], 0x1000
je 0x180038c42
mov rax, qword [rsi + 0x1c20]
mov byte [rax + 0x93], 1
mov byte [rax + 0x95], 1
mov byte [rax + 0xb0], 1
test r12b, 0x12
jne 0x180038c4f
and dword [rsi + 0x1ce0], 0xfffffffe
mov al, 1
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret