Function at 0x1400a5f70
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push rdi
push r13
push r14
push r15
sub rsp, 0x20
mov r15, qword [0x1403e6c88]
mov r13, rdx
and byte [rcx + 0x3f9], 0xf8
mov rdi, rcx
mov r14, r15
cmp byte [r15 + 0x72], 0
jne 0x1400a5fa1
cmp byte [rcx + 0x2c], 0
je 0x1400a5ffc
test dword [rcx + 0xc], 0x1200001
jne 0x1400a5ffc
cmp byte [rcx + 0xd3], 0
jne 0x1400a5ffc
cmp dword [rcx + 0x428], 0
lea rbx, [r15 + 0x54a8]
jne 0x1400a604b
mov edx, 1
mov rcx, rbx
mov r11d, edx
call fcn.140082860
test rax, rax
je 0x1400a5ff3
nop dword [rax]
inc r11d
mov rcx, rbx
mov edx, r11d
call fcn.140082860
test rax, rax
jne 0x1400a5fe0
mov dword [rdi + 0x428], r11d
jmp 0x1400a604b
mov ecx, dword [rcx + 0xc]
shr ecx, 0x15
and cl, 1
test byte [r15 + 0x4068], 1
je 0x1400a6029
movsx eax, byte [rdi + 0xf0]
test dword [r15 + 0x406c], eax
je 0x1400a6029
cmp byte [r15 + 0x40a4], 0
jne 0x1400a602d
test cl, cl
je 0x1400a6044
mov r8b, 1
mov rdx, rdi
add rsp, 0x20
pop r15
pop r14
pop r13
pop rdi
pop rbx
jmp fcn.14009fdf0
lea rbx, [r15 + 0x54a8]
mov qword [rsp + 0x58], rbp
xor ebp, ebp
mov qword [rsp + 0x60], rsi
mov rsi, qword [rdi + 0x418]
mov qword [rsp + 0x68], r12
mov r12d, dword [rdi + 0x428]
test r12d, r12d
je 0x1400a61de
test rsi, rsi
jne 0x1400a61de
mov edx, r12d
mov rcx, rbx
call fcn.140082860
mov rsi, rax
test rax, rax
je 0x1400a60a5
cmp qword [rax + 0x20], rbp
je 0x1400a6104
mov r8b, 1
mov rdx, rdi
call fcn.14009fdf0
jmp 0x1400a6411
test r15, r15
je 0x1400a60b1
inc dword [r15 + 0xf4]
mov ecx, 0xd0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x1400a60d1
mov edx, r12d
mov rcx, rax
call fcn.1400a0290
mov rsi, rax
jmp 0x1400a60d4
mov rsi, rbp
mov edx, dword [rsi]
mov r8, rsi
mov rcx, rbx
call fcn.140082a00
mov eax, dword [rsi + 0xc4]
and eax, 0xfffffe92
or eax, 0x92
mov dword [rsi + 0xc4], eax
mov eax, dword [r15 + 0x3ed8]
mov dword [rsi + 0xac], eax
test byte [rsi + 0xc8], 1
jne 0x1400a61b3
mov r10, rsi
mov rax, qword [r10 + 0x18]
test rax, rax
je 0x1400a6129
test byte [rax + 0xc8], 1
mov r10, rax
je 0x1400a6114
mov rax, qword [r10 + 0x18]
mov rdx, r10
test rax, rax
je 0x1400a614c
nop word [rax + rax]
mov rdx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1400a6140
and byte [rdx + 0xc8], 0xdf
mov rcx, qword [rdx + 0x20]
test rcx, rcx
je 0x1400a6161
call fcn.1400a0db0
mov rcx, qword [rdx + 0x28]
test rcx, rcx
je 0x1400a616f
call fcn.1400a0db0
cmp qword [rdx + 0x18], rbp
jne 0x1400a61a0
mov rax, qword [rdx + 0x98]
test rax, rax
je 0x1400a61a0
nop dword [rax]
nop word [rax + rax]
or byte [rax + 0xc8], 0x20
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1400a6190
mov r8, qword [r10 + 0x50]
mov r9, rsi
mov rdx, qword [r10 + 0x48]
mov rcx, r10
call fcn.1400a4aa0
movzx ebx, byte [rsi + 0xc8]
mov r8b, 1
mov rdx, rdi
mov rcx, rsi
call fcn.1400a0420
xor bl, byte [rsi + 0xc8]
mov r15, qword [0x1403e6c88]
and bl, 1
xor byte [rsi + 0xc8], bl
mov ecx, dword [r14 + 0x3ed8]
cmp dword [rsi + 0xac], ecx
jge 0x1400a6224
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x1400a620c
nop word [rax + rax]
mov rsi, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1400a6200
cmp dword [rsi + 0xac], ecx
jl 0x1400a6095
or byte [rdi + 0x3f9], 1
jmp 0x1400a6411
lea r8, [0x1402e2448]
mov r9, rdi
sub r9, r8
lea r10, [0x1402e2460]
nop dword [rax + rax]
movsxd rcx, dword [r8]
shl rcx, 4
add rcx, 0x3948
add rcx, r14
call fcn.1400824d0
mov dword [r9 + r8 + 0x3fc], eax
add r8, 4
cmp r8, r10
jl 0x1400a6240
mov rax, qword [rsi + 0x88]
test rax, rax
jne 0x1400a62a8
cmp dword [rsi + 0x14], 2
jne 0x1400a6280
or byte [rdi + 0x3f9], 1
cmp dword [rsi + 0x30], 1
jle 0x1400a6411
cmp byte [rdi + 0xcb], bpl
mov byte [rdi + 0xd2], 1
sete al
inc al
mov byte [rdi + 0xec], al
jmp 0x1400a6411
test byte [rsi + 0x10], 1
mov dword [rsi + 0x14], 3
jne 0x1400a62c9
movzx eax, word [rax + 0xdc]
cmp word [rdi + 0xdc], ax
jl 0x1400a6095
mov eax, dword [r15 + 0x4068]
or eax, 1
mov dword [r15 + 0x4068], eax
or eax, 2
movsd xmm0, qword [rsi + 0x48]
mov dword [r15 + 0x4068], eax
movsd qword [r15 + 0x407c], xmm0
mov qword [r15 + 0x4084], rbp
mov dword [r15 + 0x406c], 1
mov byte [r15 + 0x40a4], 1
movsd xmm0, qword [rsi + 0x50]
movsd qword [r15 + 0x408c], xmm0
mov dword [r15 + 0x4070], 1
mov byte [r14 + 0x40a4], bpl
movzx eax, byte [rdi + 0x3f9]
or al, 3
and al, 0xfb
mov byte [rdi + 0x3f9], al
test byte [rsi + 0x10], 1
jne 0x1400a6411
cmp qword [rsi + 0x90], rdi
jne 0x1400a6358
or al, 4
mov byte [rdi + 0x3f9], al
mov edx, dword [rdi + 0xc]
or edx, 0x1010002
mov dword [rdi + 0xc], edx
mov eax, edx
or eax, 1
and edx, 0xfffffffe
test dword [rsi + 0x10], 0x3000
cmovne edx, eax
mov dword [rdi + 0xc], edx
cmp qword [rsi + 0x40], rbp
je 0x1400a63d4
cmp byte [rdi + 0xcc], bpl
je 0x1400a63d4
mov rax, qword [rdi + 0x418]
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x1400a63c8
mov edx, dword [rdi + 0x90]
test edx, edx
je 0x1400a63c8
movsxd rax, dword [rcx]
test eax, eax
jle 0x1400a63c8
mov r9, qword [rcx + 8]
mov r8, rax
mov rax, r9
mov rcx, rbp
cmp dword [rax], edx
je 0x1400a642d
inc ebp
inc rcx
add rax, 0x30
cmp rcx, r8
jl 0x1400a63b6
mov eax, 0xffffffff
mov word [rdi + 0x3fa], ax
test byte [rsi + 0xc8], 0x40
jne 0x1400a63eb
mov eax, dword [rdi + 0x90]
cmp dword [rsi + 0xc0], eax
jne 0x1400a63f5
test r13, r13
je 0x1400a63f5
mov byte [r13], 0
mov rax, qword [rdi + 0x418]
mov rdx, qword [rdi]
mov rcx, qword [rax + 0x88]
call fcn.140086a60
mov dword [rdi + 0x94], eax
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov r12, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop rdi
pop rbx
ret
movsxd rax, ebp
lea rcx, [rax + rax*2]
shl rcx, 4
lea rax, [r9 + rcx]
test rax, rax
je 0x1400a63c8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rax, rdx
jmp 0x1400a63cd