Function at 0x140088b30
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rdi, r8
test rdx, rdx
je 0x140088b8b
mov rsi, rdx
mov ebx, ecx
cmp rdi, 0x40
jb 0x140088bb9
cmp dword [0x1401dac44], 0
je 0x140088bb9
mov r15, rdi
and r15, 0xfffffffffffffff0
not ebx
mov rcx, rsi
mov rdx, r15
mov r8d, ebx
call fcn.1400307d0
mov r14d, eax
and rdi, 0xf
je 0x1400893b0
add rsi, r15
mov ebx, r14d
jmp 0x140089294
xor r14d, r14d
test rdi, rdi
jne 0x1400893b3
lea rcx, [0x1401dac48]
lea rdx, [0x1400bb000]
xor r14d, r14d
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
jmp 0x1400893b3
not ebx
cmp rdi, 0x2f
jb 0x140089294
test sil, 7
je 0x140088d2c
mov edx, ebx
shr edx, 8
xor bl, byte [rsi]
lea rcx, [rsi + 1]
movzx r8d, bl
lea rax, [0x1401a9bf0]
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
dec rdx
je 0x140088d26
mov r8d, ecx
and r8d, 7
je 0x140088d26
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 2]
xor bl, byte [rsi + 1]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffe
je 0x140088d26
mov r8d, ecx
and r8d, 7
je 0x140088d26
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 3]
xor bl, byte [rsi + 2]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffd
je 0x140088d26
mov r8d, ecx
and r8d, 7
je 0x140088d26
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 4]
xor bl, byte [rsi + 3]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffc
je 0x140088d26
mov r8d, ecx
and r8d, 7
je 0x140088d26
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 5]
xor bl, byte [rsi + 4]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffb
je 0x140088d26
mov r8d, ecx
and r8d, 7
je 0x140088d26
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 6]
xor bl, byte [rsi + 5]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffa
je 0x140088d26
mov r8d, ecx
and r8d, 7
je 0x140088d26
mov edx, ebx
shr edx, 8
lea rcx, [rsi + 7]
xor bl, byte [rsi + 6]
movzx r8d, bl
mov ebx, edx
xor ebx, dword [rax + r8*4]
mov rdx, rdi
add rdx, 0xfffffffffffffff9
je 0x140088d26
mov r8d, ecx
and r8d, 7
je 0x140088d26
add rdi, 0xfffffffffffffff8
mov ecx, ebx
shr ecx, 8
xor bl, byte [rsi + 7]
add rsi, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov ebx, ecx
jmp 0x140088d2c
mov rdi, rdx
mov rsi, rcx
movabs rcx, 0xcccccccccccccccd
mov rax, rdi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea r8, [rax + rax*4]
dec rdx
je 0x140089060
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], rdi
lea r14, [0x1401a9ff0]
xor r9d, r9d
xor r10d, r10d
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x40], rsi
nop word cs:[rax + rax]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsi]
mov qword [rsp + 0x48], rdx
xor ebx, edx
movzx r8d, bl
movzx esi, bh
mov r11d, dword [r14 + rsi*4 + 0x400]
xor r11d, dword [r14 + r8*4]
mov r8d, ebx
shr r8d, 0xe
and r8d, 0x3fc
xor r11d, dword [r8 + r14 + 0x800]
shr ebx, 0x18
xor r11d, dword [r14 + rbx*4 + 0xc00]
mov rdx, qword [rsp + 0x28]
mov r12, qword [rdx + 8]
xor ecx, r12d
movzx r8d, cl
movzx esi, ch
mov ebp, dword [r14 + rsi*4 + 0x400]
xor ebp, dword [r14 + r8*4]
mov r8d, ecx
shr r8d, 0xe
and r8d, 0x3fc
xor ebp, dword [r8 + r14 + 0x800]
shr ecx, 0x18
xor ebp, dword [r14 + rcx*4 + 0xc00]
mov rcx, qword [rsp + 0x28]
mov rdi, qword [rcx + 0x10]
xor eax, edi
mov rcx, qword [rsp + 0x28]
mov r8, qword [rcx + 0x18]
mov rbx, r9
xor ebx, r8d
mov rcx, qword [rsp + 0x28]
mov r13, qword [rcx + 0x20]
mov rcx, r10
xor ecx, r13d
movzx edx, al
movzx r15d, bl
movzx r10d, cl
movzx esi, ah
mov r9d, dword [r14 + rsi*4 + 0x400]
xor r9d, dword [r14 + rdx*4]
movzx edx, bh
mov esi, dword [r14 + rdx*4 + 0x400]
xor esi, dword [r14 + r15*4]
movzx edx, ch
mov r15d, dword [r14 + rdx*4 + 0x400]
xor r15d, dword [r14 + r10*4]
mov edx, eax
shr edx, 0xe
and edx, 0x3fc
xor r9d, dword [rdx + r14 + 0x800]
mov edx, ebx
shr edx, 0xe
and edx, 0x3fc
xor esi, dword [rdx + r14 + 0x800]
mov edx, ecx
shr edx, 0xe
and edx, 0x3fc
xor r15d, dword [rdx + r14 + 0x800]
shr eax, 0x18
xor r9d, dword [r14 + rax*4 + 0xc00]
shr ebx, 0x18
xor esi, dword [r14 + rbx*4 + 0xc00]
shr ecx, 0x18
xor r15d, dword [r14 + rcx*4 + 0xc00]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
shr rax, 0x20
movzx eax, al
xor r11d, dword [r14 + rax*4 + 0x1000]
mov rax, r12
shr rax, 0x20
movzx eax, al
xor ebp, dword [r14 + rax*4 + 0x1000]
mov rax, rdi
shr rax, 0x20
movzx eax, al
xor r9d, dword [r14 + rax*4 + 0x1000]
mov rax, r8
shr rax, 0x20
movzx eax, al
xor esi, dword [r14 + rax*4 + 0x1000]
mov rax, r13
shr rax, 0x20
movzx eax, al
xor r15d, dword [r14 + rax*4 + 0x1000]
mov rax, rcx
shr rax, 0x28
movzx eax, al
xor r11d, dword [r14 + rax*4 + 0x1400]
mov rax, r12
shr rax, 0x28
movzx eax, al
xor ebp, dword [r14 + rax*4 + 0x1400]
mov rax, rdi
shr rax, 0x28
movzx eax, al
xor r9d, dword [r14 + rax*4 + 0x1400]
mov rax, r8
shr rax, 0x28
movzx eax, al
xor esi, dword [r14 + rax*4 + 0x1400]
mov rax, r13
shr rax, 0x28
movzx eax, al
xor r15d, dword [r14 + rax*4 + 0x1400]
mov rax, rcx
shr rax, 0x30
movzx eax, al
xor r11d, dword [r14 + rax*4 + 0x1800]
mov rax, r12
shr rax, 0x30
movzx eax, al
xor ebp, dword [r14 + rax*4 + 0x1800]
mov rax, rdi
shr rax, 0x30
movzx eax, al
xor r9d, dword [r14 + rax*4 + 0x1800]
mov rax, r8
shr rax, 0x30
movzx eax, al
xor esi, dword [r14 + rax*4 + 0x1800]
mov rax, r13
shr rax, 0x30
movzx eax, al
xor r15d, dword [r14 + rax*4 + 0x1800]
mov rax, rcx
shr rax, 0x38
mov ebx, r11d
xor ebx, dword [r14 + rax*4 + 0x1c00]
shr r12, 0x38
mov ecx, ebp
xor ecx, dword [r14 + r12*4 + 0x1c00]
shr rdi, 0x38
mov eax, r9d
mov rdx, qword [rsp + 0x50]
xor eax, dword [r14 + rdi*4 + 0x1c00]
shr r8, 0x38
mov r9d, esi
xor r9d, dword [r14 + r8*4 + 0x1c00]
mov rsi, qword [rsp + 0x28]
shr r13, 0x38
mov r10d, r15d
xor r10d, dword [r14 + r13*4 + 0x1c00]
add rsi, 0x28
dec rdx
jne 0x140088d80
mov rsi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x30]
add rsi, r8
add rsi, 0xffffffffffffffd8
mov r11d, r10d
mov edx, ecx
mov r10d, eax
mov r9d, r9d
mov r14, rdx
mov rdi, qword [rsp + 0x38]
jmp 0x14008906c
xor r10d, r10d
xor r9d, r9d
xor r11d, r11d
xor r14d, r14d
mov eax, ebx
xor rax, qword [rsi]
movzx edx, al
shr rax, 8
lea rcx, [0x1401a9bf0]
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
xor r14, qword [rsi + 8]
xor rdx, r14
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r10, qword [rsi + 0x10]
xor rax, r10
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
sub rdi, r8
xor r9, qword [rsi + 0x18]
xor rdx, r9
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r11, qword [rsi + 0x20]
xor rax, r11
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov ebx, dword [rcx + rdx*4]
xor rbx, rax
movzx eax, bl
shr rbx, 8
xor ebx, dword [rcx + rax*4]
add rsi, 0x28
cmp rdi, 8
jb 0x14008932d
lea rax, [0x1401a9bf0]
nop word cs:[rax + rax]
mov ecx, ebx
xor bl, byte [rsi]
shr ecx, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 1]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 2]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 3]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 4]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
add rdi, 0xfffffffffffffff8
mov edx, ecx
xor cl, byte [rsi + 5]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [rsi + 6]
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov ebx, ecx
shr ebx, 8
xor cl, byte [rsi + 7]
add rsi, 8
movzx ecx, cl
xor ebx, dword [rax + rcx*4]
cmp rdi, 7
ja 0x1400892b0
test rdi, rdi
je 0x140089343
test dil, 1
jne 0x140089348
mov rax, rdi
cmp rdi, 1
jne 0x14008936f
jmp 0x1400893b0
mov r14d, ebx
jmp 0x1400893b0
lea rax, [rdi - 1]
mov r14d, ebx
shr r14d, 8
xor bl, byte [rsi]
inc rsi
movzx ecx, bl
lea rdx, [0x1401a9bf0]
xor r14d, dword [rdx + rcx*4]
mov ebx, r14d
cmp rdi, 1
je 0x1400893b0
xor ecx, ecx
lea rdx, [0x1401a9bf0]
mov r14d, ebx
nop dword [rax + rax]
mov r8d, r14d
shr r8d, 8
xor r14b, byte [rsi + rcx]
movzx r9d, r14b
xor r8d, dword [rdx + r9*4]
mov r14d, r8d
shr r14d, 8
xor r8b, byte [rsi + rcx + 1]
movzx r8d, r8b
xor r14d, dword [rdx + r8*4]
add rcx, 2
cmp rax, rcx
jne 0x140089380
not r14d
mov eax, r14d
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret