Function at 0x140079260
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x68
mov rsi, qword [0x1401e0b10]
xor r9d, r9d
mov qword [rsp + 0x60], r13
mov rdi, rsi
vmovaps xmmword [rsp + 0x40], xmm6
vmovaps xmmword [rsp + 0x20], xmm8
mov eax, dword [rsi + 0x48a0]
sub eax, 1
mov qword [rsp + 0xa0], r9
mov byte [rsp + 0x90], r9b
js 0x1400792d6
mov r8, qword [rsi + 0x48a8]
movsxd rdx, eax
add r8, 8
imul rcx, rdx, 0x38
add r8, rcx
mov rbp, qword [r8]
test rbp, rbp
je 0x1400792cc
test dword [rbp + 0x14], 0x8000000
jne 0x14007939b
sub r8, 0x38
sub rdx, 1
jns 0x1400792b7
mov rbp, r9
vxorps xmm8, xmm8, xmm8
cmp qword [rsi + 0x4a68], r9
je 0x14007932d
cmp qword [rsi + 0x4a60], r9
jne 0x14007932d
vcomiss xmm8, dword [rsi + 0x4a94]
vmovss xmm0, dword [rsi + 0x18]
vmovss xmm1, dword [0x14010fc00]
vfnmadd213ss xmm1, xmm0, dword [rsi + 0x4a7c]
vmaxss xmm0, xmm1, xmm8
vmovss dword [rsi + 0x4a7c], xmm0
jb 0x14007932d
vcomiss xmm0, xmm8
ja 0x14007932d
mov qword [rsi + 0x4a68], r9
mov esi, 0xffffffff
lea rdx, [0x14010d239]
mov ebx, esi
lea r9, [0x140104160]
mov r8b, 0x23
cmp r8b, 0x23
jne 0x140079357
cmp byte [rdx], r8b
jne 0x140079357
cmp byte [rdx + 1], r8b
cmove ebx, esi
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [r9 + rcx*4]
test r8b, r8b
jne 0x140079345
mov r13d, dword [rdi + 8]
not ebx
mov rsi, qword [0x1401e0b10]
movzx eax, r13b
mov qword [rsp + 0x58], r14
test r13b, 2
je 0x1400793a7
test byte [rdi + 0xc], 1
je 0x1400793a7
mov r14b, 1
jmp 0x1400793ae
mov qword [rsi + 0x4a60], r9
jmp 0x1400792d9
xor r14b, r14b
movzx r13d, al
and r13b, 1
mov qword [rsp + 0xa8], r12
mov qword [rsp + 0x50], r15
test rbp, rbp
jne 0x1400793ec
mov ecx, dword [rdi + 0x4a58]
test ecx, ecx
je 0x1400793ec
mov r8d, 0x1001
mov edx, ebx
call fcn.140073460
mov rsi, qword [0x1401e0b10]
test al, al
je 0x1400793ec
mov r15b, 1
jmp 0x1400793f4
xor r15b, r15b
test rbp, rbp
jne 0x14007941b
mov ecx, dword [rdi + 0x4a5c]
test ecx, ecx
je 0x14007941b
mov r8d, 0x1001
mov edx, ebx
call fcn.140073460
mov rsi, qword [0x1401e0b10]
test al, al
je 0x14007941b
mov r12b, 1
jmp 0x140079425
xor r12b, r12b
test rbp, rbp
jne 0x14007944e
test r14b, r14b
je 0x14007944e
cmp qword [rdi + 0x4a60], 0
jne 0x14007944e
xor r8d, r8d
xor edx, edx
mov ecx, 0x26b
call fcn.140071460
test al, al
je 0x14007944e
mov r11b, 1
jmp 0x140079456
xor r11b, r11b
test rbp, rbp
jne 0x140079471
cmp qword ds:[rdi + 0x4a60], 0
jne 0x140079471
test r15b, r15b
jne 0x14007946c
test r12b, r12b
je 0x140079471
mov r10b, 1
jmp 0x140079474
xor r10b, r10b
mov r14, qword [rsp + 0x58]
test r11b, r11b
jne 0x140079489
nop
test r10b, r10b
je 0x1400795f1
mov rax, qword [rdi + 0x48d8]
test rax, rax
jne 0x1400794fc
mov r8d, dword [rdi + 0x3ea8]
sub r8d, 1
js 0x1400794f1
movsxd r9, dword [rsi + 0x3ea8]
movsxd rcx, r8d
nop dword [rax]
cmp rcx, r9
jge 0x1400794f1
cmp rcx, 0xffffffff80000001
je 0x1400794f1
mov rax, qword [rsi + 0x3eb0]
mov rdx, qword [rax + rcx*8]
cmp byte [rdx + 0xb7], 0
je 0x1400794e8
cmp rdx, qword [rdx + 0x378]
jne 0x1400794e8
test dword [rdx + 0x14], 0x80000
je 0x1400795e5
dec r8d
sub rcx, 1
jns 0x1400794b0
xor eax, eax
test rax, rax
je 0x1400795f1
mov rax, qword ds:[rax + 0x378]
xor ebp, ebp
mov qword [rdi + 0x4a68], rax
mov qword [rdi + 0x4a60], rax
movzx eax, r10b
xor eax, 1
mov qword [rdi + 0x4a78], rbp
add eax, 2
mov qword [rdi + 0x4a8c], rbp
mov qword [rdi + 0x4a84], rbp
mov byte [rdi + 0x4a80], r11b
mov dword [rdi + 0x490c], eax
test r15b, r15b
jne 0x14007954e
test r12b, r12b
je 0x1400795f3
mov eax, dword ds:[rdi + 0x4a5c]
or eax, dword [rdi + 0x4a58]
bt eax, 0xc
jae 0x140079575
mov dword [rsi + 0x4604], ebx
mov dword [rsi + 0x4600], ebx
mov word [rsi + 0x4608], bp
bt eax, 0xd
jae 0x14007958e
mov dword [rsi + 0x4610], ebx
mov dword [rsi + 0x460c], ebx
mov word [rsi + 0x4614], bp
bt eax, 0xe
jae 0x1400795a7
mov dword [rsi + 0x461c], ebx
mov dword [rsi + 0x4618], ebx
mov word [rsi + 0x4620], bp
bt eax, 0xf
jae 0x1400795c0
mov dword [rsi + 0x4628], ebx
mov dword [rsi + 0x4624], ebx
mov word [rsi + 0x462c], bp
bt eax, 0xb
jae 0x1400795f3
cmp byte [rsi + 0x79], bpl
mov eax, 0x4600
mov ecx, 0x4624
cmovne eax, ecx
mov dword [rax + rsi + 4], ebx
mov dword [rax + rsi], ebx
mov word [rax + rsi + 8], bp
jmp 0x1400795f3
movsxd rcx, r8d
mov rax, qword [rax + rcx*8]
jmp 0x1400794f3
xor ebp, ebp
cmp qword ds:[rdi + 0x4a60], 0
vmovss xmm0, dword [rdi + 0x18]
vaddss xmm1, xmm0, dword [rdi + 0x4a78]
vmovss xmm6, dword [0x14010fa98]
vmovss dword [rdi + 0x4a78], xmm1
vmovaps xmmword [rsp + 0x30], xmm7
je 0x1400797b7
cmp dword [rdi + 0x490c], 3
jne 0x1400796f5
vsubss xmm0, xmm1, dword [0x14010fa18]
vmulss xmm1, xmm0, dword [0x14010fc28]
vcomiss xmm1, xmm8
jae 0x140079651
vmovaps xmm2, xmm8
jmp 0x140079655
vminss xmm2, xmm1, xmm6
vmovss xmm0, dword [rdi + 0x4a7c]
vmaxss xmm7, xmm0, xmm2
xor edx, edx
mov ecx, 0x274
mov r8d, 1
vmovss dword [rdi + 0x4a7c], xmm7
call fcn.140071460
xor edx, edx
movzx ebx, al
mov ecx, 0x273
mov r8d, 1
call fcn.140071460
movzx ecx, al
sub ecx, ebx
je 0x1400796aa
call fcn.1400790e0
mov dword [rdi + 0x4a7c], 0x3f800000
vmovaps xmm7, xmm6
cmp byte [rsi + 0x34dc], 0
je 0x1400796bc
cmp byte [rsi + 0x44ac], 0
je 0x1400796f5
vcomiss xmm7, xmm6
setb al
and byte [rdi + 0x4a80], al
je 0x1400796df
cmp qword [rdi + 0x48d8], 0
je 0x1400796ee
mov byte [rsp + 0x90], 1
jmp 0x1400796ee
mov rax, qword [rdi + 0x4a60]
mov qword [rsp + 0xa0], rax
mov qword [rdi + 0x4a60], rbp
cmp qword ds:[rdi + 0x4a60], 0
je 0x1400797b7
cmp dword [rdi + 0x490c], 2
jne 0x1400797b7
mov eax, dword [rdi + 0x4a58]
mov ecx, 0xf800
vmovss xmm0, dword [rdi + 0x4a78]
vsubss xmm1, xmm0, dword [0x14010fa18]
vmulss xmm2, xmm1, dword [0x14010fc28]
test eax, eax
mov edx, 0xf800
cmovne ecx, eax
mov eax, dword [rdi + 0x4a5c]
test eax, eax
cmovne edx, eax
and edx, ecx
mov ecx, edx
and ecx, 0xf800
vcomiss xmm2, xmm8
jae 0x140079763
vmovaps xmm1, xmm8
jmp 0x140079767
vminss xmm1, xmm2, xmm6
vmovss xmm0, dword ds:[rdi + 0x4a7c]
vmaxss xmm1, xmm0, xmm1
vmovss dword [rdi + 0x4a7c], xmm1
test r15b, r15b
jne 0x1400797a4
test r12b, r12b
jne 0x1400797a4
mov eax, dword [rdi + 0xe28]
and eax, edx
and eax, 0xf800
cmp eax, ecx
je 0x1400797b7
mov rbx, qword [rdi + 0x4a60]
jmp 0x1400797bf
movzx ecx, r15b
xor ecx, 1
lea ecx, [rcx*2 - 1]
call fcn.1400790e0
mov rbx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x50]
test r13b, r13b
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0xa8]
je 0x1400797fd
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x4000
call fcn.140071460
test al, al
je 0x1400797fd
mov byte [rdi + 0x4a80], 1
mov dword [rdi + 0x490c], 2
cmp byte [rdi + 0x4a80], 0
je 0x140079929
cmp dword [rdi + 0x490c], 2
jne 0x140079929
cmp dword ds:[rdi + 0x37c0], 0
jg 0x140079846
cmp byte [rdi + 0xe24], 0
jne 0x140079846
cmp byte [rdi + 0xe25], 0
jne 0x140079846
cmp byte [rdi + 0xe27], 0
jne 0x140079846
cmp dword [rsi + 0x4618], 0xffffffff
je 0x14007984d
mov byte [rdi + 0x4a80], 0
vcomiss xmm8, dword [rsi + 0x36d4]
ja 0x14007990e
cmp byte [rsi + 0x36cc], 0
jne 0x140079917
cmp byte [rsi + 0x4620], 0
jne 0x14007990e
cmp byte ds:[rdi + 0x4a80], 0
je 0x14007990e
cmp dword [rdi + 0x3f58], 0
je 0x140079898
cmp byte [rdi + 0x3f65], 0
je 0x14007990e
lea rax, ds:[rdi + 0x36f0]
test rax, rax
jne 0x1400798ac
lea rax, [rsi + 0xe08]
vmovss xmm0, dword [rax]
vmovss xmm1, dword [0x14010fe54]
vcomiss xmm0, xmm1
vmovss xmm2, dword [rax + 4]
jb 0x1400798cd
vcomiss xmm2, xmm1
jb 0x1400798cd
mov cl, 1
jmp 0x1400798cf
xor cl, cl
lea rax, [rdi + 0xe08]
test rax, rax
jne 0x1400798e2
lea rax, [rsi + 0xe08]
vmovss xmm0, dword [rax]
vcomiss xmm0, xmm1
vmovss xmm2, dword [rax + 4]
jb 0x1400798fb
vcomiss xmm2, xmm1
jb 0x1400798fb
mov al, 1
jmp 0x1400798fd
xor al, al
nop dword [rax]
cmp al, cl
jne 0x14007990e
mov byte [rsp + 0x90], 1
jmp 0x140079922
cmp byte [rsi + 0x36cc], 0
je 0x140079922
cmp byte ds:[rsi + 0x4620], 0
je 0x140079929
mov byte [rdi + 0x4a80], 0
mov rax, qword [rdi + 0x4a60]
test rax, rax
je 0x140079a99
test byte ds:[rax + 0x14], 4
jne 0x140079a99
mov eax, dword [rdi + 0x490c]
cmp eax, 2
jne 0x140079982
cmp byte [rdi + 0xe25], 0
jne 0x140079a99
vmovss xmm0, dword ds:[rsi + 0x2e78]
vmovss xmm1, dword [rsi + 0x2e58]
vsubss xmm4, xmm0, dword [rsi + 0x2e68]
vsubss xmm5, xmm1, dword [rsi + 0x2e48]
jmp 0x1400799b1
vmovaps xmm4, xmm8
vmovaps xmm5, xmm8
cmp eax, 3
jne 0x1400799b1
vmovss xmm0, dword [rsi + 0x35f8]
vmovss xmm1, dword [rsi + 0x35d8]
vsubss xmm4, xmm0, dword [rsi + 0x35e8]
vsubss xmm5, xmm1, dword [rsi + 0x35c8]
vucomiss xmm5, xmm8
jne 0x1400799c6
vucomiss xmm4, xmm8
je 0x140079a99
vmovss xmm0, dword [rdi + 0x74]
vminss xmm1, xmm0, dword [rdi + 0x70]
vmulss xmm2, xmm1, dword [rdi + 0x18]
vmulss xmm3, xmm2, dword [0x14010fd8c]
vmovaps xmm1, xmm5
vfmadd213ss xmm1, xmm3, dword [rdi + 0x4a84]
vcvttss2si eax, xmm1
vmovaps xmm0, xmm4
vfmadd213ss xmm0, xmm3, dword [rdi + 0x4a88]
vxorps xmm7, xmm7, xmm7
vcvtsi2ss xmm7, xmm7, eax
vucomiss xmm7, xmm8
vcvttss2si eax, xmm0
vxorps xmm6, xmm6, xmm6
vcvtsi2ss xmm6, xmm6, eax
vmovss dword [rdi + 0x4a84], xmm1
vmovss dword [rdi + 0x4a88], xmm0
mov byte [rdi + 0x4917], 1
jne 0x140079a34
vucomiss xmm6, xmm8
je 0x140079a99
mov rax, qword [rdi + 0x4a60]
lea rdx, [rsp + 0x98]
mov r8d, 1
mov rcx, qword [rax + 0x378]
vaddss xmm0, xmm7, dword [rcx + 0x20]
vaddss xmm1, xmm6, dword [rcx + 0x24]
vmovss dword [rsp + 0x98], xmm0
vmovss dword [rsp + 0x9c], xmm1
call fcn.140070660
vmovss xmm0, dword [rdi + 0x4a84]
vmovss xmm2, dword [rdi + 0x4a88]
vsubss xmm1, xmm0, xmm7
vsubss xmm0, xmm2, xmm6
vmovss dword [rdi + 0x4a88], xmm0
vmovss dword [rdi + 0x4a84], xmm1
vmovaps xmm8, xmmword [rsp + 0x20]
vmovaps xmm7, xmmword [rsp + 0x30]
vmovaps xmm6, xmmword [rsp + 0x40]
test rbx, rbx
je 0x140079b3a
mov rax, qword ds:[rdi + 0x48d8]
test rax, rax
je 0x140079ace
cmp rbx, qword [rax + 0x378]
je 0x140079b33
xor edx, edx
xor ecx, ecx
call fcn.1400670a0
mov rax, qword [0x1401e0b10]
xor edx, edx
mov rcx, rbx
mov word [rax + 0x4915], 1
mov byte [rax + 0x4917], 1
call fcn.140074e40
mov edx, 1
mov rcx, rbx
call fcn.14006ff60
mov rbx, qword [rdi + 0x48d8]
cmp dword [rbx + 0x3a0], 0
jne 0x140079b1f
xor edx, edx
mov rcx, rbx
call fcn.140076b20
cmp word [rbx + 0x15e], 2
jne 0x140079b33
mov dword [rdi + 0x4910], 1
mov qword [rdi + 0x4a60], rbp
cmp byte [rsp + 0x90], 0
je 0x140079c07
cmp qword [rdi + 0x48d8], 0
je 0x140079c07
xor edx, edx
xor ecx, ecx
call fcn.1400670a0
mov rbx, qword [rdi + 0x48d8]
lea rcx, [rbx + 0x368]
cmp qword [rcx], 0
je 0x140079b9b
test byte [rbx + 0x15c], 2
jne 0x140079b9b
mov eax, dword [rbx + 0x14]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x140079b9b
mov rbx, qword [rcx]
lea rcx, [rbx + 0x368]
cmp qword [rcx], 0
jne 0x140079b73
mov rsi, qword [rdi + 0x48d8]
cmp rbx, rsi
je 0x140079bb8
xor edx, edx
mov rcx, rbx
call fcn.14006ff60
mov qword [rbx + 0x398], rsi
mov rax, qword [rdi + 0x48d8]
test byte [rax + 0x15c], 2
je 0x140079bd3
mov ecx, dword [rdi + 0x4910]
xor ecx, 1
jmp 0x140079bd5
mov ecx, ebp
cmp ecx, dword [rdi + 0x4910]
je 0x140079c07
nop dword [rax]
cmp ecx, 1
jne 0x140079beb
mov dword [rax + 0x3a4], ebp
call fcn.1400769e0
mov rax, qword [0x1401e0b10]
mov word [rax + 0x4915], 1
mov byte [rax + 0x4917], 1
add rsp, 0x68
pop rdi
pop rsi
pop rbp
pop rbx
ret