Function at 0x10040ed60
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0xc0
mov rdi, rcx
xor ebx, ebx
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0xf8], ebx
mov r9d, 0xa0
mov qword [rsp + 0x30], r9
mov r8d, 0xffffffff
lea r10, [rcx + 0x18]
mov qword [rsp + 0x38], r10
lea r15, [0x1004156f0]
mov rax, r9
dec r9
mov qword [rsp + 0x30], r9
test rax, rax
je 0x10040edd1
movzx ecx, byte [r10]
mov eax, r8d
xor rcx, rax
movzx edx, cl
shr eax, 8
mov r8d, dword [r15 + rdx*4]
xor r8d, eax
inc r10
mov qword [rsp + 0x38], r10
jmp 0x10040eda0
mov dword [rdi + 0xb8], r8d
mov rcx, qword [rdi + 0x38]
mov qword [rsp + 0x100], rcx
call fcn.10040dfa0
mov dword [rdi + 0xc0], eax
mov rcx, qword [rdi + 0x40]
mov qword [rsp + 0x108], rcx
call fcn.10040dfa0
mov dword [rdi + 0xc4], eax
lea rcx, [rdi + 0x13a0]
call fcn.10040fbe0
mov dword [rsp + 0x20], eax
test eax, eax
jne 0x10040ee2a
lea rcx, [rdi + 0x13c8]
call fcn.10040fbe0
mov dword [rsp + 0x20], eax
mov rcx, qword [rdi + 0x90]
mov qword [rsp + 0x60], rcx
call fcn.10040dfa0
mov dword [rdi + 0xd4], eax
mov rcx, qword [rdi + 0x98]
mov qword [rsp + 0x68], rcx
call fcn.10040dfa0
mov dword [rdi + 0xd8], eax
mov rcx, qword [rdi + 0x58]
mov qword [rsp + 0x70], rcx
call fcn.10040dfa0
mov dword [rdi + 0xd0], eax
mov rcx, qword [rdi + 0x20]
mov qword [rsp + 0x78], rcx
call fcn.10040dfa0
mov dword [rdi + 0xbc], eax
mov rcx, qword [rdi + 0x48]
mov qword [rsp + 0x80], rcx
call fcn.10040dfa0
mov dword [rdi + 0xc8], eax
mov rcx, qword [rdi + 0x50]
mov qword [rsp + 0x88], rcx
call fcn.10040dfa0
mov dword [rdi + 0xcc], eax
mov rcx, qword [rdi + 0x60]
mov qword [rsp + 0x90], rcx
call fcn.10040dfa0
mov dword [rdi + 0xdc], eax
mov rcx, qword [rdi + 0x68]
mov qword [rsp + 0x98], rcx
call fcn.10040dfa0
mov dword [rdi + 0xe0], eax
lea r14, [rdi + 0x1120]
mov dword [rsp + 0x24], ebx
mov r9d, 0x220
mov qword [rsp + 0x40], r9
mov r8d, 0xffffffff
mov r10, r14
mov qword [rsp + 0x48], r14
mov rax, r9
dec r9
mov qword [rsp + 0x40], r9
test rax, rax
je 0x10040ef34
mov ecx, r8d
movzx eax, byte [r10]
xor rcx, rax
movzx edx, cl
mov eax, r8d
shr eax, 8
mov r8d, dword [r15 + rdx*4]
xor r8d, eax
inc r10
mov qword [rsp + 0x48], r10
jmp 0x10040ef00
mov esi, dword [r14 + 0x228]
lea r11d, [rsi + r8]
mov dword [rsp + 0x24], r11d
mov dword [rsp + 0x28], ebx
cmp ebx, esi
jae 0x10040efbc
mov r9d, 0xb3c
mov qword [rsp + 0x50], r9
mov eax, 0xffffffff
mov ecx, ebx
imul r10, rcx, 0xb3c
add r10, qword [r14 + 0x220]
mov qword [rsp + 0x58], r10
nop dword [rax]
nop word [rax + rax]
mov rcx, r9
dec r9
mov qword [rsp + 0x50], r9
test rcx, rcx
je 0x10040efb0
movzx edx, byte [r10]
mov ecx, eax
xor rdx, rcx
movzx r8d, dl
shr ecx, 8
mov eax, dword [r15 + r8*4]
xor eax, ecx
inc r10
mov qword [rsp + 0x58], r10
jmp 0x10040ef80
add r11d, eax
mov dword [rsp + 0x24], r11d
inc ebx
jmp 0x10040ef44
mov dword [rdi + 0x1350], r11d
mov rcx, qword [rdi + 0x1360]
mov qword [rsp + 0xa0], rcx
call fcn.10040dfa0
mov dword [rdi + 0x1368], eax
mov rcx, qword [rdi + 0x1378]
mov qword [rsp + 0xa8], rcx
call fcn.10040dfa0
mov dword [rdi + 0x1380], eax
jmp 0x10040f02a
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0x20]
test eax, eax
cmovns eax, ecx
add rsp, 0xc0
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret