Function at 0x140046690
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x38
xor r13d, r13d
movzx esi, r8w
mov rdi, rdx
mov r14, rcx
mov ebx, r13d
test rcx, rcx
je 0x1400466c6
lea r11d, [r13 + 0x30]
lea rbx, [rcx + 0x18]
jmp 0x1400466d8
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.140003cd0
mov r11d, eax
mov r12d, 8
mov r9, rbx
mov qword [rsp + 0x88], r12
test rbx, rbx
je 0x14004673e
or ecx, 0xffffffff
mov r10d, r11d
test r11d, r11d
je 0x140046742
mov edx, dword [rsp + 0x78]
nop dword [rax]
dec r10d
test r9, r9
je 0x14004670f
movsx edx, byte [r9]
inc r9
test edx, edx
jne 0x14004671b
lea eax, [r11 + 1]
test eax, eax
je 0x140046742
mov r8, r12
nop
mov eax, edx
xor eax, ecx
shr ecx, 1
test al, 1
je 0x140046730
xor ecx, 0xedb88320
shr edx, 1
dec r8
jne 0x140046720
test r10d, r10d
jne 0x140046700
jmp 0x140046742
mov ecx, dword [rsp + 0x78]
test rdi, rdi
je 0x140046b84
mov rdx, qword [rdi + 0x88]
mov r8d, ecx
lea rcx, [rsp + 0x20]
call fcn.140055d80
test eax, eax
je 0x140046775
mov rdi, qword [rsp + 0x20]
mov r12d, r13d
mov qword [rsp + 0x88], r12
jmp 0x14004677a
mov rdi, qword [rsp + 0x78]
test r12d, r12d
jne 0x140046b73
mov r12, qword [rsp + 0x78]
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x30], r15
mov r15d, dword [rdi + 0x830]
mov rbp, qword [r12 + 0x1b8]
test r15d, r15d
jne 0x14004699c
test rbp, rbp
je 0x1400467fa
mov ecx, dword [r14 + 0x40]
lea r8, [rdi + 0x838]
mov rdx, r12
call fcn.140046560
mov qword [rsp + 0x88], rax
test eax, eax
je 0x1400467fa
mov r8, qword [r14 + 0x50]
test r8, r8
je 0x1400467f3
xor r9d, r9d
mov rdx, rbp
mov ecx, 0x5d9b481c
call fcn.140002210
mov qword [rdi + 0x838], rax
jmp 0x1400467fa
mov qword [rdi + 0x838], r13
cmp qword [rdi + 0x838], r13
je 0x14004699c
mov dword [rdi + 0x85c], 1
mov r8, qword [r12 + 0x70]
test r8, r8
je 0x140046948
test rbp, rbp
je 0x140046948
movsx rcx, si
xor r9d, r9d
mov rdx, rbp
call fcn.140002210
mov r14, rax
test rax, rax
je 0x140046943
mov rcx, qword [rdi + 0x838]
mov rax, r13
movzx edx, word [rcx]
test dx, dx
je 0x140046937
nop dword [rax]
cmp dx, 0x5c
movzx edx, word [rcx + 2]
cmove rax, rcx
add rcx, 2
test dx, dx
jne 0x140046860
test rax, rax
je 0x140046937
lea r12, [rax + 2]
mov rsi, r12
movzx eax, word [r12]
test ax, ax
je 0x1400468a3
nop
cmp ax, 0x2e
je 0x1400468fa
movzx eax, word [rsi + 2]
add rsi, 2
test ax, ax
jne 0x140046890
mov rsi, r13
mov ecx, r13d
mov rdx, r14
nop dword [rax]
movzx eax, word [rdx]
cmp ax, 0x7c
je 0x140046910
cmp ax, 0x20
je 0x140046910
mov rbx, rdx
test ax, ax
je 0x1400468da
cmp ax, 0x7c
je 0x140046905
movzx eax, word [rbx + 2]
add rbx, 2
test ax, ax
jne 0x1400468c7
mov rbx, r13
mov rcx, r12
call fcn.140004790
mov ecx, eax
test rbx, rbx
je 0x14004691a
mov eax, 0x7c
lea rdx, [rbx + 2]
mov word [rbx], ax
jmp 0x140046914
test rsi, rsi
je 0x1400468a6
mov word [rsi], r13w
jmp 0x1400468a6
test rbx, rbx
je 0x1400468dd
mov word [rbx], r13w
jmp 0x1400468dd
add rdx, 2
test ecx, ecx
je 0x1400468b0
jmp 0x140046925
test eax, eax
jne 0x140046925
mov dword [rdi + 0x85c], r13d
mov r12, qword [rsp + 0x78]
test rsi, rsi
je 0x140046937
mov eax, 0x2e
mov word [rsi], ax
mov rdx, r14
mov rcx, rbp
call qword [rbp + 0x230]
mov r14, qword [rsp + 0x70]
mov r8d, dword [rbp + 0xd8]
mov rcx, qword [rbp + 0x92b8]
mov edx, 0x2cc0385c
call qword [rbp + 0x260]
test rax, rax
je 0x14004696f
lea rcx, [rdi + 0x828]
call rax
mov r8d, dword [rbp + 0xd8]
mov rcx, qword [rbp + 0x128]
mov edx, 0x91089f9b
call qword [rbp + 0x260]
test rax, rax
je 0x14004699c
mov rcx, qword [r14 + 0x28]
mov r8d, 0x400
mov rdx, rdi
call rax
mov dword [rdi + 0x830], 1
cmp dword [rdi + 0x85c], r13d
je 0x140046b38
movzx ecx, word [r14]
test cx, cx
je 0x140046a11
mov eax, dword [rdi + 0x840]
cmp eax, 0x2000
jae 0x140046a11
cmp cx, 8
jne 0x1400469eb
test eax, eax
je 0x1400469ff
dec dword [rdi + 0x840]
mov dword [rsp + 0x88], r13d
mov rsi, qword [rsp + 0x88]
jmp 0x140046a16
mov eax, dword [rdi + 0x840]
mov word [rdi + rax*2 + 0x864], cx
inc dword [rdi + 0x840]
mov dword [rsp + 0x88], r13d
mov rsi, qword [rsp + 0x88]
jmp 0x140046a16
mov esi, 0x6f
mov rax, qword [r14 + 8]
test rax, rax
je 0x140046b40
cmp word [rax], r13w
je 0x140046a3d
nop dword [rax]
add rax, 2
inc r13d
cmp word [rax], 0
jne 0x140046a30
lea r8d, [r13 + r13 + 0x22]
xor edx, edx
mov rcx, rbp
call qword [rbp + 0xc8]
mov rbx, rax
test rax, rax
je 0x140046b40
lea rdx, [rax + 0x20]
test rdx, rdx
je 0x140046a9a
mov r8, qword [r14 + 8]
lea ecx, [r13 + r13 + 2]
call fcn.14000aeb0
mov dword [rbx + 0x10], r13d
mov r8d, dword [rbp + 0xd8]
mov rcx, qword [rbp + 0x92b8]
mov edx, 0x2cc0385c
call qword [rbp + 0x260]
test rax, rax
je 0x140046acf
lea rcx, [rbx + 0x18]
call rax
jmp 0x140046acf
mov edx, r15d
mov rcx, r12
call fcn.140046300
mov r15d, dword [rdi + 0x830]
mov rbp, qword [r12 + 0x1b8]
mov esi, eax
mov rax, qword [r14 + 8]
test rax, rax
je 0x140046acf
cmp word [rax], 0
je 0x140046acf
add rax, 2
cmp word [rax], 0
jne 0x140046ac5
mov r8d, dword [rbp + 0xd8]
mov rcx, qword [rbp + 0x268]
mov edx, 0xfad305a7
call qword [rbp + 0x260]
test rax, rax
je 0x140046af6
lea rcx, [rdi + 0x800]
call rax
lea rcx, [rdi + 0x848]
mov edx, 0x3dd44a92
mov rax, qword [rcx + 8]
mov qword [rbx], rcx
mov qword [rbx + 8], rax
mov qword [rax], rbx
mov qword [rcx + 8], rbx
mov r8d, dword [rbp + 0xd8]
mov rcx, qword [rbp + 0x268]
call qword [rbp + 0x260]
test rax, rax
je 0x140046b40
lea rcx, [rdi + 0x800]
call rax
jmp 0x140046b40
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x80]
test r15d, r15d
mov r15, qword [rsp + 0x30]
je 0x140046b63
mov rcx, qword [r12 + 0x88]
lea rdx, [rdi - 0x38]
call fcn.140056020
mov eax, esi
add rsp, 0x38
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov eax, r12d
add rsp, 0x38
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov dword [0x190], r13d
test rbx, rbx
je 0x140046bdc
or ecx, 0xffffffff
mov r9d, r11d
test r11d, r11d
je 0x140046bdc
mov edx, dword [rsp + 0x78]
dec r9d
test rbx, rbx
je 0x140046bae
movsx edx, byte [rbx]
inc rbx
test edx, edx
jne 0x140046bba
lea eax, [r11 + 1]
test eax, eax
je 0x140046bdc
mov r8, r12
nop dword [rax]
mov eax, edx
xor eax, ecx
shr ecx, 1
test al, 1
je 0x140046bd0
xor ecx, 0xedb88320
shr edx, 1
dec r8
jne 0x140046bc0
test r9d, r9d
jne 0x140046ba0
mov eax, r13d
add rsp, 0x38
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret