Function at 0x140054d80
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
test rdx, rdx
je 0x140054e6e
mov r12, rdx
mov ebx, ecx
mov r15d, r8d
cmp r8d, 0x40
jb 0x140054db1
cmp dword [0x14016a21c], 0
jne 0x140054fbc
not ebx
test r15, r15
je 0x140054e9b
mov eax, r12d
and eax, 3
test rax, rax
je 0x140054e9b
lea rdi, [r12 + 1]
movzx eax, byte [r12]
movzx edx, bl
xor edx, eax
lea rax, [0x140145d80]
shr ebx, 8
xor ebx, dword [rax + rdx*4]
mov rdx, r15
dec rdx
je 0x140054f11
mov ecx, edi
and ecx, 3
test rcx, rcx
je 0x140054f11
lea rsi, [r12 + 2]
movzx edx, byte [r12 + 1]
movzx edi, bl
xor edi, edx
shr ebx, 8
xor ebx, dword [rax + rdi*4]
mov rdx, r15
add rdx, 0xfffffffffffffffe
je 0x140054e95
mov ecx, esi
and ecx, 3
test rcx, rcx
je 0x140054e95
lea rsi, [r12 + 3]
movzx edx, byte [r12 + 2]
movzx edi, bl
xor edi, edx
shr ebx, 8
xor ebx, dword [rax + rdi*4]
mov rdx, r15
add rdx, 0xfffffffffffffffd
je 0x140054e95
mov ecx, esi
and ecx, 3
test rcx, rcx
je 0x140054e95
movzx ecx, byte [r12 + 3]
add r12, 4
movzx edx, bl
xor edx, ecx
shr ebx, 8
xor ebx, dword [rax + rdx*4]
add r15, 0xfffffffffffffffc
jmp 0x140054e9b
test r8d, r8d
jne 0x1400551b4
lea rcx, [0x14016a220]
lea rdx, [0x140101340]
xor ebx, ebx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
jmp 0x140054eb2
mov r12, rsi
mov r15, rdx
cmp r15, 0x20
jae 0x140054fe9
cmp r15, 4
jae 0x140054ec2
test r15, r15
jne 0x140054f16
not ebx
mov eax, ebx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
xor ebx, dword [r12]
add r12, 4
mov eax, 0xff
mov edi, ebx
and edi, eax
lea rcx, [0x140145d80]
mov edx, ebx
shr edx, 8
and edx, eax
mov esi, dword [rcx + rdx*4 + 0x800]
xor esi, dword [rcx + rdi*4 + 0xc00]
mov edi, ebx
shr edi, 0x10
and edi, eax
xor esi, dword [rcx + rdi*4 + 0x400]
shr ebx, 0x18
xor esi, dword [rcx + rbx*4]
add r15, 0xfffffffffffffffc
cmp r15, 4
jae 0x140054f75
mov ebx, esi
jmp 0x140054eab
mov r12, rdi
jmp 0x140054e98
movzx eax, byte [r12]
movzx ecx, bl
xor ecx, eax
lea rax, [0x140145d80]
shr ebx, 8
xor ebx, dword [rax + rcx*4]
cmp r15, 1
je 0x140054eb0
movzx ecx, byte [r12 + 1]
movzx edx, bl
xor edx, ecx
shr ebx, 8
xor ebx, dword [rax + rdx*4]
cmp r15, 2
je 0x140054eb0
mov ecx, 2
movzx edx, byte [r12 + rcx]
movzx edi, bl
xor edi, edx
shr ebx, 8
xor ebx, dword [rax + rdi*4]
inc rcx
cmp r15, rcx
je 0x140054eb0
jmp 0x140054f57
xor esi, dword [r12]
add r12, 4
mov edi, esi
and edi, eax
mov edx, esi
shr edx, 8
and edx, eax
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rdi*4 + 0xc00]
mov edx, esi
shr edx, 0x10
and edx, eax
xor ebx, dword [rcx + rdx*4 + 0x400]
shr esi, 0x18
xor ebx, dword [rcx + rsi*4]
add r15, 0xfffffffffffffffc
mov esi, ebx
cmp r15, 3
jbe 0x140054eab
jmp 0x140054f75
mov r14d, r15d
and r14d, 0xfffffff0
not ebx
mov rcx, r12
mov rdx, r14
mov r8d, ebx
call fcn.1400551c0
mov ebx, eax
not ebx
and r15, 0xf
je 0x140054eb2
add r12, r14
jmp 0x140054db1
mov r8d, 0xff
lea rcx, [0x140145d80]
xor ebx, dword [r12]
mov edi, ebx
and edi, r8d
mov edx, ebx
shr edx, 8
and edx, r8d
mov eax, dword [rcx + rdx*4 + 0x800]
xor eax, dword [rcx + rdi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
and esi, r8d
xor eax, dword [rcx + rsi*4 + 0x400]
shr ebx, 0x18
xor eax, dword [rcx + rbx*4]
xor eax, dword [r12 + 4]
mov ebx, eax
and ebx, r8d
mov edx, eax
shr edx, 8
and edx, r8d
mov edi, dword [rcx + rdx*4 + 0x800]
xor edi, dword [rcx + rbx*4 + 0xc00]
mov edx, eax
shr edx, 0x10
and edx, r8d
xor edi, dword [rcx + rdx*4 + 0x400]
shr eax, 0x18
xor edi, dword [rcx + rax*4]
xor edi, dword [r12 + 8]
mov eax, edi
and eax, r8d
mov edx, edi
shr edx, 8
and edx, r8d
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rax*4 + 0xc00]
mov eax, edi
shr eax, 0x10
and eax, r8d
xor ebx, dword [rcx + rax*4 + 0x400]
shr edi, 0x18
xor ebx, dword [rcx + rdi*4]
xor ebx, dword [r12 + 0xc]
mov eax, ebx
and eax, r8d
mov edx, ebx
shr edx, 8
and edx, r8d
mov edi, dword [rcx + rdx*4 + 0x800]
xor edi, dword [rcx + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor edi, dword [rcx + rax*4 + 0x400]
shr ebx, 0x18
xor edi, dword [rcx + rbx*4]
xor edi, dword [r12 + 0x10]
mov eax, edi
and eax, r8d
mov edx, edi
shr edx, 8
and edx, r8d
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rax*4 + 0xc00]
mov eax, edi
shr eax, 0x10
and eax, r8d
xor ebx, dword [rcx + rax*4 + 0x400]
shr edi, 0x18
xor ebx, dword [rcx + rdi*4]
xor ebx, dword [r12 + 0x14]
mov eax, ebx
and eax, r8d
mov edx, ebx
shr edx, 8
and edx, r8d
mov edi, dword [rcx + rdx*4 + 0x800]
xor edi, dword [rcx + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
and eax, r8d
xor edi, dword [rcx + rax*4 + 0x400]
shr ebx, 0x18
xor edi, dword [rcx + rbx*4]
xor edi, dword [r12 + 0x18]
mov eax, edi
and eax, r8d
mov edx, edi
shr edx, 8
and edx, r8d
mov esi, dword [rcx + rdx*4 + 0x800]
xor esi, dword [rcx + rax*4 + 0xc00]
mov eax, edi
shr eax, 0x10
and eax, r8d
xor esi, dword [rcx + rax*4 + 0x400]
shr edi, 0x18
xor esi, dword [rcx + rdi*4]
xor esi, dword [r12 + 0x1c]
add r12, 0x20
mov eax, esi
and eax, r8d
mov edx, esi
shr edx, 8
and edx, r8d
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rax*4 + 0xc00]
mov eax, esi
shr eax, 0x10
and eax, r8d
xor ebx, dword [rcx + rax*4 + 0x400]
shr esi, 0x18
xor ebx, dword [rcx + rsi*4]
add r15, 0xffffffffffffffe0
cmp r15, 0x1f
jbe 0x140054ea5
jmp 0x140054ff6
xor ebx, ebx
jmp 0x140054eb2