Function at 0x14002a630
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1c8
movups xmmword [rsp + 0x180], xmm6
movups xmmword [rsp + 0x190], xmm7
movups xmmword [rsp + 0x1a0], xmm8
movups xmmword [rsp + 0x1b0], xmm9
mov rax, qword [0x140218048]
lea r14, [0x1401a7160]
lea r8, str._s_0x_08X___d_tabs__s__
mov r12d, dword [rax + 0x3f60]
mov r15d, dword [rcx + 0x28]
lea rax, [0x1401a8181]
sub r12d, 2
cmp r15d, r12d
cmovge rax, r14
mov rdi, rcx
mov r9, rdx
mov rbp, rdx
lea r13, [rsp + 0x80]
mov edx, 0x100
mov qword [rsp + 0x30], rax
mov eax, dword [rcx]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x14]
mov rcx, r13
mov dword [rsp + 0x20], eax
call fcn.140005360
mov edx, dword [rdi]
movsxd rsi, eax
add rsi, r13
test edx, edx
jle 0x14002aaa0
xor ebx, ebx
lea rax, [rbx + rbx*4]
mov rcx, rdi
lea rdx, [rbx + rax*2]
mov rax, qword [rdi + 8]
lea rdx, [rax + rdx*4]
call fcn.1400a63b0
lea rdx, [rsp + 0x180]
mov qword [rsp + 0x20], rax
sub rdx, rsi
test rbx, rbx
je 0x14002a740
mov rcx, rsi
lea r9, [0x1401a81b1]
lea r8, str._s_s
call fcn.140005360
mov edx, 3
cdqe
add rsi, rax
mov eax, dword [rdi]
cmp eax, edx
cmovle edx, eax
add rbx, 1
cmp edx, ebx
jle 0x14002a770
mov ebx, 2
jmp 0x14002a6d9
mov rcx, rsi
mov r9, r14
lea r8, str._s_s
call fcn.140005360
cdqe
add rsi, rax
mov eax, dword [rdi]
cmp eax, 1
jle 0x14002a770
mov ebx, 1
jmp 0x14002a6d9
lea r8, [0x1401a818d]
cmp eax, 3
jle 0x14002aaa0
lea rdx, [rsp + 0x180]
mov rcx, rsi
sub rdx, rsi
call fcn.140005360
cmp r15d, r12d
jl 0x14002ac9b
mov r8, r13
lea rdx, [0x1401a7137]
mov rcx, rbp
call fcn.1400a10f0
mov ebx, eax
call fcn.1400039f0
test al, al
jne 0x14002ad5e
test bl, bl
je 0x14002aa63
mov eax, dword [rdi]
test eax, eax
jle 0x14002aa5d
mov rax, qword [0x140218048]
xor r14d, r14d
xor r13d, r13d
lea rbp, [0x1401aac20]
movss xmm9, dword [0x1401ab1c8]
mov rsi, qword [rax + 0x4008]
mov eax, dword [rsi + 0x100]
nop dword [rax]
mov rcx, qword [rsi + 0x108]
movsxd rdx, eax
mov rbx, qword [rdi + 8]
mov ecx, dword [rcx + rdx*4 - 4]
add rbx, r14
mov r8, rbx
not ecx
shr r8, 0x10
mov edx, ecx
xor ecx, ebx
movzx ecx, cl
shr edx, 8
xor edx, dword [rbp + rcx*4]
mov ecx, edx
xor dl, bh
movzx edx, dl
shr ecx, 8
xor ecx, dword [rbp + rdx*4]
mov edx, ecx
xor ecx, r8d
mov r8d, ebx
shr r8d, 0x18
movzx ecx, cl
shr edx, 8
xor edx, dword [rbp + rcx*4]
mov ecx, edx
xor edx, r8d
mov r8, rbx
shr r8, 0x20
movzx edx, dl
shr ecx, 8
xor ecx, dword [rbp + rdx*4]
mov edx, ecx
xor ecx, r8d
mov r8, rbx
shr r8, 0x28
movzx ecx, cl
shr edx, 8
xor edx, dword [rbp + rcx*4]
mov ecx, edx
xor edx, r8d
mov r8, rbx
shr ecx, 8
movzx edx, dl
shr r8, 0x30
xor ecx, dword [rbp + rdx*4]
mov edx, ecx
xor ecx, r8d
movzx ecx, cl
shr edx, 8
xor edx, dword [rbp + rcx*4]
mov rcx, rbx
shr rcx, 0x38
mov r12d, edx
xor edx, ecx
shr r12d, 8
movzx edx, dl
xor r12d, dword [rbp + rdx*4]
mov rdx, qword [rsi]
not r12d
cmp r12d, dword [rdx + 0x4054]
je 0x14002ac70
cmp dword [rsi + 0x104], eax
je 0x14002aab0
mov r15, qword [rsi + 0x108]
cdqe
lea rcx, [0x1401a81bb]
mov dword [r15 + rax*4], r12d
add dword [rsi + 0x100], 1
call fcn.140091c50
test al, al
jne 0x14002ac50
mov rax, qword [0x140218048]
mov rax, qword [rax + 0x4008]
cmp byte [rax + 0xc3], 0
jne 0x14002a95b
movss xmm0, dword [rax + 0x118]
movss xmm1, dword [rax + 0x11c]
mov byte [rax + 0x150], 1
mov rdx, qword [rax + 0x140]
addss xmm0, xmm9
mov qword [rax + 0x138], rdx
unpcklps xmm0, xmm1
movlps qword [rax + 0x110], xmm0
movss xmm0, dword [rax + 0x14c]
movss dword [rax + 0x148], xmm0
lea rcx, [0x1401a81bd]
call fcn.140091c50
test al, al
jne 0x14002ac30
mov rdx, qword [0x140218048]
mov rax, qword [rdx + 0x4008]
cmp byte [rax + 0xc3], 0
jne 0x14002a9cd
movss xmm0, dword [rdx + 0x393c]
addss xmm0, dword [rax + 0x118]
mov byte [rax + 0x150], 1
movss xmm1, dword [rax + 0x11c]
mov rdx, qword [rax + 0x140]
unpcklps xmm0, xmm1
mov qword [rax + 0x138], rdx
movlps qword [rax + 0x110], xmm0
movss xmm0, dword [rax + 0x14c]
movss dword [rax + 0x148], xmm0
pxor xmm8, xmm8
pxor xmm7, xmm7
pxor xmm6, xmm6
mov rdx, rbx
mov rcx, rdi
cvtss2sd xmm8, dword [rbx + 0x18]
cvtss2sd xmm7, dword [rbx + 0x14]
cvtss2sd xmm6, dword [rbx + 0x10]
call fcn.1400a63b0
mov r9d, dword [rbx]
cmp r9d, dword [rdi + 0x18]
movsd qword [rsp + 0x38], xmm8
mov qword [rsp + 0x20], rax
movsd qword [rsp + 0x30], xmm7
movsd qword [rsp + 0x28], xmm6
je 0x14002abe0
mov edx, r13d
mov r8d, 0x20
add r13d, 1
add r14, 0x2c
lea rcx, str._02d_c_Tab_0x_08X__s_Offset:__.2f__Width:__.2f__.2f
call fcn.14008fef0
mov rax, qword [0x140218048]
mov rsi, qword [rax + 0x4008]
mov eax, dword [rsi + 0x100]
sub eax, 1
mov dword [rsi + 0x100], eax
cmp dword [rdi], r13d
jg 0x14002a800
call fcn.1400a1240
nop
movups xmm6, xmmword [rsp + 0x180]
movups xmm7, xmmword [rsp + 0x190]
movups xmm8, xmmword [rsp + 0x1a0]
movups xmm9, xmmword [rsp + 0x1b0]
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x1401a8194]
jmp 0x14002a780
test eax, eax
je 0x14002ac90
mov r9d, eax
lea edx, [rax + 1]
shr r9d, 0x1f
add r9d, eax
sar r9d, 1
add r9d, eax
cmp r9d, edx
cmovl r9d, edx
cmp r9d, eax
jle 0x14002a8d8
nop dword [rax + rax]
movsxd rcx, r9d
mov dword [rsp + 0x4c], r9d
mov rdx, qword [0x1402180c8]
shl rcx, 2
call qword [case.0x1400092c2.1]
mov r9d, dword [rsp + 0x4c]
mov r15, rax
mov rax, qword [0x140218048]
test rax, rax
je 0x14002ab91
movsx ecx, word [rax + 0x6048]
mov r10d, dword [rax + 0x3f60]
lea r8, [rax + 0x6040]
movsx r11, cx
cmp r10d, dword [rax + r11*8 + 0x604c]
je 0x14002ae32
add ecx, 1
movsxd rdx, ecx
mov r11d, ecx
imul rdx, rdx, 0x2aaaaaab
sar r11d, 0x1f
shr rdx, 0x20
sub edx, r11d
lea r11d, [rdx + rdx*2]
add r11d, r11d
sub ecx, r11d
movsxd rdx, ecx
lea r11, [rdx*8]
mov word [rax + 0x6048], dx
mov dword [rax + rdx*8 + 0x604c], r10d
lea rcx, [r8 + r11 + 0xc]
mov dword [r8 + r11 + 0x10], 0
add word [rcx + 4], 1
add dword [rax + 0x6040], 1
mov rdx, qword [rsi + 0x108]
test rdx, rdx
je 0x14002abc6
movsxd r8, dword [rsi + 0x100]
mov rcx, r15
mov dword [rsp + 0x4c], r9d
shl r8, 2
call fcn.1400de8e0
mov rcx, qword [rsi + 0x108]
call fcn.140009220
mov r9d, dword [rsp + 0x4c]
mov qword [rsi + 0x108], r15
mov eax, dword [rsi + 0x100]
mov dword [rsi + 0x104], r9d
jmp 0x14002a8df
mov edx, r13d
mov r8d, 0x2a
add r13d, 1
add r14, 0x2c
lea rcx, str._02d_c_Tab_0x_08X__s_Offset:__.2f__Width:__.2f__.2f
call fcn.14008fef0
mov rax, qword [0x140218048]
mov rsi, qword [rax + 0x4008]
mov eax, dword [rsi + 0x100]
sub eax, 1
mov dword [rsi + 0x100], eax
cmp r13d, dword [rdi]
jl 0x14002a800
jmp 0x14002aa5d
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
call fcn.1400a64d0
jmp 0x14002a96f
mov r8d, 0xffffffff
mov rdx, rbx
mov rcx, rdi
call fcn.1400a64d0
jmp 0x14002a900
xor r9d, r9d
mov r8, rbx
mov edx, 0xc
mov ecx, r12d
call fcn.140029860
mov eax, dword [rsi + 0x100]
jmp 0x14002a8cc
mov r9d, 8
jmp 0x14002aae0
mov rbx, qword [0x140218048]
mov dword [rsp + 0x60], 0
movdqu xmm3, xmmword [rbx + 0x39d4]
movsxd rax, dword [rbx + 0x4a30]
movups xmmword [rsp + 0x64], xmm3
cmp eax, dword [rbx + 0x4a34]
je 0x14002ae3c
mov rsi, qword [rbx + 0x4a38]
movdqu xmm4, xmmword [rsp + 0x60]
lea rax, [rax + rax*4]
mov r8, r13
mov rcx, rbp
lea rax, [rsi + rax*4]
movups xmmword [rax], xmm4
mov edx, dword [rsp + 0x70]
mov dword [rax + 0x10], edx
movdqu xmm5, xmmword [rbx + 0x39e4]
lea rdx, [0x1401a7137]
add dword [rbx + 0x4a30], 1
movups xmmword [rbx + 0x39d4], xmm5
call fcn.1400a10f0
mov rdx, qword [0x140218048]
mov ebx, eax
mov eax, dword [rdx + 0x4a30]
test eax, eax
jle 0x14002a7bd
movsxd rcx, eax
sub eax, 1
lea r8, [rcx + rcx*4]
mov rcx, qword [rdx + 0x4a38]
lea r8, [rcx + r8*4 - 0x14]
movsxd rcx, dword [r8]
movdqu xmm2, xmmword [r8 + 4]
shl rcx, 4
movups xmmword [rcx + rdx + 0x39d4], xmm2
mov dword [rdx + 0x4a30], eax
jmp 0x14002a7bd
mov rax, qword [0x140218048]
lea r12, [rsp + 0x60]
lea rbp, [rsp + 0x58]
mov rax, qword [rax + 0x4ad0]
mov rcx, qword [rax]
call fcn.140003b60
lea rdx, [rdi + 0x2c]
lea r8, [rdi + 0x34]
movss xmm6, dword [0x1401ab080]
mov dword [rsp + 0x28], 0
mov rcx, rax
mov r9d, 0xff00ffff
mov rsi, rax
mov dword [rsp + 0x20], 0
movss dword [rsp + 0x30], xmm6
call fcn.14006a820
movss xmm0, dword [rdi + 0x5c]
mov r8, r12
mov rdx, rbp
movss xmm2, dword [rdi + 0x38]
mov rcx, rsi
mov r9d, 0xff00ff00
movaps xmm1, xmm0
unpcklps xmm1, xmm2
movlps qword [rsp + 0x60], xmm1
movss xmm1, dword [rdi + 0x30]
movss dword [rsp + 0x20], xmm6
unpcklps xmm0, xmm1
movlps qword [rsp + 0x58], xmm0
call fcn.14006a610
movss xmm0, dword [rdi + 0x60]
mov r8, r12
mov rdx, rbp
movss xmm2, dword [rdi + 0x38]
mov r9d, 0xff00ff00
mov rcx, rsi
movaps xmm1, xmm0
unpcklps xmm1, xmm2
movlps qword [rsp + 0x60], xmm1
movss xmm1, dword [rdi + 0x30]
movss dword [rsp + 0x20], xmm6
unpcklps xmm0, xmm1
movlps qword [rsp + 0x58], xmm0
call fcn.14006a610
jmp 0x14002a7bd
lea rcx, [r8 + r11*8 + 0xc]
jmp 0x14002ab85
lea ecx, [rax + 1]
test eax, eax
jne 0x14002aeac
mov eax, 8
cmp ecx, eax
cmovge eax, ecx
mov r12d, eax
movsxd rax, r12d
lea rcx, [rax + rax*4]
shl rcx, 2
call fcn.140009130
mov rdx, qword [rbx + 0x4a38]
mov rsi, rax
test rdx, rdx
je 0x14002ae92
movsxd rax, dword [rbx + 0x4a30]
mov rcx, rsi
lea r8, [rax + rax*4]
shl r8, 2
call fcn.1400de8e0
mov rcx, qword [rbx + 0x4a38]
call fcn.140009220
mov qword [rbx + 0x4a38], rsi
movsxd rax, dword [rbx + 0x4a30]
mov dword [rbx + 0x4a34], r12d
jmp 0x14002acd1
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
add edx, eax
cmp edx, ecx
cmovge ecx, edx
mov r12d, ecx
cmp eax, ecx
jge 0x14002acca
jmp 0x14002ae50