Function at 0x140056c70
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r12d, ecx
mov rax, qword [0x1402808a8]
mov rbx, qword [rax + 0x1a90]
mov r14d, ecx
shr r14d, 8
mov r15d, ecx
shr r15d, 0x10
mov r13d, ecx
shr r13d, 0x18
cmp dword [0x14027b304], 0xa
mov eax, dword [rbx + 0xc8]
jl 0x140056cca
mov ecx, dword [0x14027b300]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x140056e3d
mov rdi, qword [rbx + 0xd0]
lea ecx, [rax - 1]
movsxd rcx, ecx
mov ebp, dword [rdi + rcx*4]
not ebp
mov ecx, ebp
xor ecx, r12d
movzx ecx, cl
lea rdx, [0x1401ca9b0]
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
mov ecx, ebp
xor ecx, r14d
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
mov ecx, ebp
xor ecx, r15d
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
movzx ecx, bpl
xor ecx, r13d
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
not ebp
cmp eax, dword [rbx + 0xcc]
jne 0x140056e07
lea esi, [rax + 1]
test eax, eax
je 0x140056d3c
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x140056d41
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x140056e07
movsxd rcx, esi
shl rcx, 2
mov rax, qword [0x1402808a8]
test rax, rax
je 0x140056d68
add dword [rax + 0x3bc], 1
mov rdx, qword [0x1402808b8]
call qword [0x140275378]
mov rdi, rax
mov rdx, qword [rbx + 0xd0]
test rdx, rdx
je 0x140056df4
movsxd r8, dword [rbx + 0xc8]
shl r8, 2
mov rcx, rdi
call fcn.140115f70
mov rcx, qword [rbx + 0xd0]
test rcx, rcx
je 0x140056de7
mov eax, dword [0x14027a788]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
sete dl
cmp dword [0x14027a78c], 0xa
setl al
or al, dl
nop word cs:[rax + rax]
nop dword [rax + rax]
test al, al
je 0x140056dd0
mov rax, qword [0x1402808a8]
test rax, rax
je 0x140056de7
add dword [rax + 0x3bc], 0xffffffff
mov rdx, qword [0x1402808b8]
call qword [0x140275380]
mov qword [rbx + 0xd0], rdi
mov dword [rbx + 0xcc], esi
mov eax, dword [rbx + 0xc8]
cdqe
mov dword [rdi + rax*4], ebp
mov eax, dword [rbx + 0xc8]
add eax, 1
mov dword [rbx + 0xc8], eax
cmp dword [0x14027b304], 0xa
jl 0x140056f90
mov ecx, dword [0x14027b300]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x140056f90
mov rdi, qword [rbx + 0xd0]
lea ecx, [rax - 1]
movsxd rcx, ecx
mov ebp, dword [rdi + rcx*4]
not ebp
mov ecx, ebp
xor ecx, r12d
movzx ecx, cl
lea rdx, [0x1401ca9b0]
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
mov ecx, ebp
xor ecx, r14d
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
mov ecx, ebp
xor ecx, r15d
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
movzx ecx, bpl
xor ecx, r13d
shr ebp, 8
xor ebp, dword [rdx + rcx*4]
not ebp
cmp eax, dword [rbx + 0xcc]
jne 0x140056f77
lea esi, [rax + 1]
test eax, eax
je 0x140056eaf
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x140056eb4
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x140056f77
movsxd rcx, esi
shl rcx, 2
mov rax, qword [0x1402808a8]
test rax, rax
je 0x140056edb
add dword [rax + 0x3bc], 1
mov rdx, qword [0x1402808b8]
call qword [0x140275378]
mov rdi, rax
mov rdx, qword [rbx + 0xd0]
test rdx, rdx
je 0x140056f64
movsxd r8, dword [rbx + 0xc8]
shl r8, 2
mov rcx, rdi
call fcn.140115f70
mov rcx, qword [rbx + 0xd0]
test rcx, rcx
je 0x140056f57
mov eax, dword [0x14027a788]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
sete dl
cmp dword [0x14027a78c], 0xa
setl al
or al, dl
nop word cs:[rax + rax]
nop
test al, al
je 0x140056f40
mov rax, qword [0x1402808a8]
test rax, rax
je 0x140056f57
add dword [rax + 0x3bc], 0xffffffff
mov rdx, qword [0x1402808b8]
call qword [0x140275380]
mov qword [rbx + 0xd0], rdi
mov dword [rbx + 0xcc], esi
mov eax, dword [rbx + 0xc8]
cdqe
mov dword [rdi + rax*4], ebp
mov eax, dword [rbx + 0xc8]
add eax, 1
mov dword [rbx + 0xc8], eax
jmp 0x140056cca
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret