Function at 0x140005390
Capabilities:
Hash data with crc32

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x140026040]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov rax, qword [rbp + 0xa0]
mov rsi, r8
mov qword [rbp - 0x38], rax
mov rdi, rdx
mov rbx, rcx
test rcx, rcx
je 0x140005d44
mov r12d, dword [rbp + 0x70]
test r12d, 0xfffffff7
jne 0x140005d44
cmp dword [rcx + 0x88], 1
jne 0x1400053f3
call fcn.140005f40
test eax, eax
jne 0x1400058ce
mov qword [rsp + 0xc0], r13
test rdi, rdi
mov qword [rsp + 0x78], r14
lea r14, [0x14001fdb0]
cmovne r14, rdi
mov qword [rsp + 0x70], r15
mov rdi, 0xffffffffffffffff
nop word [rax + rax]
inc rdi
cmp byte [r14 + rdi], 0
jne 0x140005420
xor ecx, ecx
test rsi, rsi
je 0x1400054e1
mov eax, dword [rsi + 0x18]
test eax, eax
jne 0x1400054e3
mov edx, dword [rsi + 0x14]
lea eax, [rdx - 0x7bc]
cmp eax, 0x7f
jbe 0x14000545a
cmp edx, 0xcf
ja 0x1400054e1
mov r9d, dword [rsi + 0x10]
cmp r9d, 0xb
ja 0x1400054e1
mov r10d, dword [rsi + 0xc]
lea eax, [r10 - 1]
cmp eax, 0x1e
ja 0x1400054e1
mov eax, dword [rsi + 8]
cmp eax, 0x17
ja 0x1400054e1
mov r11d, dword [rsi + 4]
cmp r11d, 0x3b
ja 0x1400054e1
mov r8d, dword [rsi]
cmp r8d, 0x3b
ja 0x1400054e1
mov ecx, edx
shl ecx, 4
cmp edx, 0x7bc
jb 0x1400054ad
add ecx, 0x441
add ecx, r9d
shl ecx, 5
add ecx, r10d
shl ecx, 0x10
jmp 0x1400054cc
add ecx, r9d
shl ecx, 5
add ecx, r10d
shl ecx, 0x10
cmp edx, 0x50
jb 0x1400054c6
add ecx, 0x60200000
jmp 0x1400054cc
add ecx, 0x28200000
shl eax, 6
add eax, r11d
shr r8d, 1
shl eax, 5
add eax, r8d
or eax, ecx
xor ecx, ecx
jmp 0x1400054e3
mov eax, ecx
mov r13d, dword [rbp + 0x78]
mov r15, rbx
mov dword [rbx + 0x10120], eax
mov dword [rbx + 0x114], r12d
mov dword [rbx + 0x118], r12d
mov dword [rbx + 0x10124], ecx
mov qword [rbx + 0xe8], 0
mov dword [rbx + 0x11c], ecx
mov dword [rbx + 0x110], ecx
cmp r13d, 8
je 0x140005529
mov eax, ecx
cmp r13d, 9
jne 0x140005538
mov dword [rbx + 0x110], 2
mov eax, 2
cmp r13d, 2
jne 0x140005543
or eax, 4
jmp 0x14000554e
cmp r13d, 1
jne 0x140005554
mov eax, 6
mov dword [rbx + 0x110], eax
cmp qword [rbp - 0x38], 0
je 0x140005564
or eax, 1
mov dword [rbx + 0x110], eax
cmp qword [rbx + 0x10180], 0
mov r12d, 0xffffffff
jbe 0x14000562d
cmp dword [rbx + 0x10188], 0
jne 0x1400055a7
cmp qword [rbx + 0x10178], 0
jne 0x1400055a7
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, 4
mov dword [rbp - 0x30], 0x8074b50
call qword [rbx + 0x18]
mov rax, qword [rbx + 0x28]
mov r9d, 2
mov rdx, qword [rbx + 0x68]
mov rcx, qword [rbx + 0x40]
test rax, rax
je 0x1400055c5
xor r8d, r8d
call rax
jmp 0x1400055cb
xor r8d, r8d
call qword [rbx + 0x60]
cmp qword [rbx + 0x28], 0
mov rdx, qword [rbx + 0x68]
mov rcx, qword [rbx + 0x40]
je 0x1400055e2
call qword [rbx + 0x20]
mov r8, rax
jmp 0x1400055f9
call qword [rbx + 0x58]
cmp eax, r12d
jne 0x1400055f6
mov r12, 0xffffffffffffffff
mov r8, r12
jmp 0x140005600
mov r8d, eax
mov r12, 0xffffffffffffffff
cmp dword [rbx + 0x10128], 0
lea eax, [rdi + 0x1e]
mov ecx, eax
lea rdx, [rax + 0x14]
mov rax, qword [rbx + 0x10180]
cmove rdx, rcx
sub rax, r8
cmp rax, rdx
jae 0x140005634
mov rcx, rbx
call fcn.140004ef0
jmp 0x140005634
mov r12, 0xffffffffffffffff
cmp qword [rbx + 0x28], 0
mov rdx, qword [rbx + 0x68]
mov rcx, qword [rbx + 0x40]
je 0x140005648
call qword [rbx + 0x20]
jmp 0x14000565b
call qword [rbx + 0x58]
mov ecx, 0xffffffff
cmp eax, ecx
jne 0x140005659
mov rax, r12
jmp 0x14000565b
mov eax, eax
xor ecx, ecx
mov qword [rbx + 0xf0], rax
mov dword [rbx + 0x100], ecx
lea eax, [rdi + 0x2e]
lea ecx, [rax + 0x20]
mov qword [rbx + 0x108], 0x20
add ecx, 0
mov dword [rbx + 0x104], eax
cmovb rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, dword [rbx + 0x10188]
mov qword [rbx + 0xf8], rax
mov dword [rbx + 0x1012c], ecx
mov dword [rax], 0x2014b50
mov rax, qword [rbx + 0xf8]
mov word [rax + 4], 0
mov rax, qword [rbx + 0xf8]
mov word [rax + 6], 0x14
mov eax, dword [rbx + 0x110]
mov rcx, qword [rbx + 0xf8]
mov byte [rcx + 8], al
shr rax, 8
mov byte [rcx + 9], al
cmp rax, 0x100
jb 0x1400056e6
mov word [rcx + 8], 0xffff
mov eax, dword [rbx + 0x114]
mov rcx, qword [rbx + 0xf8]
mov byte [rcx + 0xa], al
shr rax, 8
mov byte [rcx + 0xb], al
cmp rax, 0x100
jb 0x14000570b
mov word [rcx + 0xa], 0xffff
mov rax, qword [rbx + 0xf8]
mov ecx, dword [r15 + 0x10120]
mov r12d, edi
mov byte [rbp - 0x40], r12b
mov byte [rax + 0xc], cl
shr rcx, 8
mov byte [rax + 0xd], cl
shr rcx, 8
mov byte [rax + 0xe], cl
shr rcx, 8
mov byte [rax + 0xf], cl
mov rax, qword [rbx + 0xf8]
mov r9d, edi
mov dword [rax + 0x10], 0
mov rax, qword [rbx + 0xf8]
mov dword [rax + 0x14], 0
mov rax, qword [rbx + 0xf8]
mov dword [rax + 0x18], 0
mov rax, qword [rbx + 0xf8]
mov byte [rax + 0x1c], r12b
shr r12, 8
mov byte [rax + 0x1d], r12b
cmp r12, 0x100
jb 0x140005787
mov word [rax + 0x1c], 0xffff
mov rax, qword [rbx + 0xf8]
mov word [rax + 0x1e], 0
mov rax, qword [rbx + 0xf8]
mov word [rax + 0x20], 0
mov eax, dword [rbx + 0x1012c]
mov rdx, qword [rbx + 0xf8]
mov byte [rdx + 0x22], al
shr rax, 8
mov byte [rdx + 0x23], al
mov rcx, qword [rbx + 0xf8]
cmp rax, 0x100
jb 0x1400057d4
mov word [rdx + 0x22], 0xffff
mov rcx, qword [rbx + 0xf8]
test rsi, rsi
jne 0x1400057e9
mov word [rcx + 0x24], si
mov rax, qword [rbx + 0xf8]
mov dword [rax + 0x26], esi
jmp 0x14000582d
mov eax, dword [rsi + 0x1c]
mov byte [rcx + 0x24], al
shr rax, 8
mov byte [rcx + 0x25], al
mov rdx, qword [rbx + 0xf8]
cmp rax, 0x100
jb 0x140005812
mov word [rcx + 0x24], 0xffff
mov rdx, qword [rbx + 0xf8]
mov eax, dword [rsi + 0x20]
mov byte [rdx + 0x26], al
shr rax, 8
mov byte [rdx + 0x27], al
shr rax, 8
mov byte [rdx + 0x28], al
shr rax, 8
mov byte [rdx + 0x29], al
mov rdx, qword [rbx + 0xf0]
mov r8d, 0xffffffff
mov rcx, qword [rbx + 0xf8]
mov rax, rcx
cmp rdx, r8
jb 0x14000584f
mov dword [rcx + 0x2a], r8d
jmp 0x14000587c
mov eax, edx
sub rax, qword [rbx + 0x10170]
mov byte [rcx + 0x2a], al
shr rax, 8
mov byte [rcx + 0x2b], al
shr rax, 8
mov byte [rcx + 0x2c], al
shr rax, 8
mov byte [rcx + 0x2d], al
cmp rax, 0x100
jb 0x14000587c
mov dword [rcx + 0x2a], r8d
test edi, edi
je 0x1400058ad
mov rdx, r14
mov r8d, 0x2e
nop dword [rax]
movzx eax, byte [rdx]
lea r8, [r8 + 1]
mov rcx, qword [rbx + 0xf8]
lea rdx, [rdx + 1]
mov byte [r8 + rcx - 1], al
sub r9, 1
jne 0x140005890
cmp qword [rbx + 0xf8], 0
jne 0x1400058e8
mov eax, 0xffffff98
mov r14, qword [rsp + 0x78]
mov r13, qword [rsp + 0xc0]
mov r15, qword [rsp + 0x70]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.140018da0
add rsp, 0x80
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, dword [rbp + 0xc0]
lea r8, [rbp - 0x30]
mov rdx, qword [rbx + 0x68]
mov r9d, 4
mov dword [rbx + 0x10128], eax
xor eax, eax
mov qword [rbx + 0x10138], rax
mov qword [rbx + 0x10140], rax
mov qword [rbx + 0x10130], rax
mov rcx, qword [rbx + 0x40]
mov dword [rbp - 0x30], 0x4034b50
call qword [rbx + 0x18]
cmp eax, 4
je 0x14000593b
mov r14, 0xffffffffffffffff
mov esi, r14d
jmp 0x140005c4a
cmp dword [rbx + 0x10128], 0
lea r8, [rbp - 0x30]
mov rdx, qword [rbx + 0x68]
mov r9d, 2
mov rcx, qword [rbx + 0x40]
mov rax, qword [rbx + 0x18]
mov word [rbp - 0x30], 0x2d
jne 0x140005966
mov word [rbp - 0x30], 0x14
call rax
sub eax, 2
neg eax
sbb esi, esi
test esi, esi
jne 0x140005c43
mov eax, dword [rbx + 0x110]
mov byte [rbp - 0x30], al
shr rax, 8
mov byte [rbp - 0x2f], al
cmp rax, 0x100
jb 0x140005995
mov word [rbp - 0x30], 0xffff
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, 2
call qword [rbx + 0x18]
lea ecx, [rax - 2]
neg ecx
sbb esi, esi
cmp eax, 2
jne 0x140005c43
mov eax, dword [rbx + 0x114]
mov byte [rbp - 0x30], al
shr rax, 8
mov byte [rbp - 0x2f], al
cmp rax, 0x100
jb 0x1400059d8
mov word [rbp - 0x30], 0xffff
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, 2
call qword [rbx + 0x18]
lea ecx, [rax - 2]
neg ecx
sbb esi, esi
cmp eax, 2
jne 0x140005c43
mov eax, dword [r15 + 0x10120]
lea r8, [rbp - 0x30]
mov rdx, qword [rbx + 0x68]
mov r9d, 4
mov rcx, qword [rbx + 0x40]
mov byte [rbp - 0x30], al
shr rax, 8
mov byte [rbp - 0x2f], al
shr rax, 8
mov byte [rbp - 0x2e], al
shr rax, 8
mov byte [rbp - 0x2d], al
call qword [rbx + 0x18]
lea ecx, [rax - 4]
neg ecx
sbb esi, esi
cmp eax, 4
jne 0x140005c43
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, eax
mov dword [rbp - 0x30], 0
call qword [rbx + 0x18]
lea ecx, [rax - 4]
neg ecx
sbb esi, esi
cmp eax, 4
jne 0x140005c43
cmp dword [rbx + 0x10128], 0
lea r8, [rbp - 0x30]
mov rdx, qword [rbx + 0x68]
mov r9d, 4
mov rcx, qword [rbx + 0x40]
mov rax, qword [rbx + 0x18]
mov dword [rbp - 0x30], 0xffffffff
jne 0x140005a97
mov dword [rbp - 0x30], 0
call rax
sub eax, 4
neg eax
sbb esi, esi
test esi, esi
jne 0x140005c43
lea r8, [rbp - 0x30]
mov rdx, qword [rbx + 0x68]
mov r9d, 4
mov rcx, qword [rbx + 0x40]
mov rax, qword [rbx + 0x18]
mov dword [rbp - 0x30], 0xffffffff
cmp dword [rbx + 0x10128], esi
jne 0x140005ad0
mov dword [rbp - 0x30], esi
call rax
sub eax, 4
neg eax
sbb esi, esi
test esi, esi
jne 0x140005c43
movzx eax, byte [rbp - 0x40]
mov byte [rbp - 0x30], al
mov byte [rbp - 0x2f], r12b
cmp r12, 0x100
jb 0x140005afb
mov word [rbp - 0x30], 0xffff
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, 2
call qword [rbx + 0x18]
lea ecx, [rax - 2]
neg ecx
sbb esi, esi
cmp eax, 2
jne 0x140005c43
mov eax, dword [rbx + 0x10128]
lea r8, [rbp - 0x30]
mov rdx, qword [rbx + 0x68]
neg eax
mov r9d, 2
mov byte [rbp - 0x2f], 0
sbb cl, cl
and cl, 0x14
mov byte [rbp - 0x30], cl
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x18]
lea ecx, [rax - 2]
neg ecx
sbb esi, esi
cmp eax, 2
jne 0x140005c43
test edi, edi
je 0x140005b81
mov rdx, qword [rbx + 0x68]
mov r9d, edi
mov rcx, qword [rbx + 0x40]
mov r8, r14
call qword [rbx + 0x18]
cmp eax, edi
je 0x140005b81
mov r14, 0xffffffffffffffff
mov esi, r14d
jmp 0x140005c4a
cmp dword [rbx + 0x10128], 0
je 0x140005c43
cmp qword [rbx + 0x28], 0
mov rdx, qword [rbx + 0x68]
mov rcx, qword [rbx + 0x40]
je 0x140005ba2
call qword [rbx + 0x20]
jmp 0x140005bbc
call qword [rbx + 0x58]
mov ecx, 0xffffffff
cmp eax, ecx
jne 0x140005bba
mov r14, 0xffffffffffffffff
mov rax, r14
jmp 0x140005bc3
mov eax, eax
mov r14, 0xffffffffffffffff
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov qword [rbx + 0x10130], rax
mov r9d, 2
mov rcx, qword [rbx + 0x40]
mov word [rbp - 0x30], 1
call qword [rbx + 0x18]
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, 2
mov word [rbp - 0x30], 0x10
call qword [rbx + 0x18]
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, 8
mov qword [rbp - 0x30], 0
call qword [rbx + 0x18]
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, 8
mov qword [rbp - 0x30], 0
call qword [rbx + 0x18]
sub eax, 8
neg eax
sbb esi, esi
jmp 0x140005c4a
mov r14, 0xffffffffffffffff
xor edi, edi
mov qword [rbx + 0xa8], 0x10000
mov qword [rbx + 0x98], rdi
lea rax, [rbx + 0x120]
mov qword [rbx + 0xa0], rax
mov dword [rbx + 0xd8], edi
test esi, esi
jne 0x140005cc6
cmp dword [rbx + 0x11c], edi
jne 0x140005cc6
cmp dword [rbp + 0x70], 8
jne 0x140005cc6
lea rcx, [rbx + 0x90]
mov qword [rbx + 0xc0], rdi
mov r9d, 0xfffffff1
mov qword [rbx + 0xc8], rdi
mov edx, r13d
mov qword [rbx + 0xd0], rbx
call fcn.14000f2c0
mov esi, eax
test eax, eax
jne 0x140005cc6
mov dword [rbx + 0xe8], 8
mov dword [rbx + 0x10160], edi
jmp 0x140005cd0
mov dword [rbx + 0x10160], edi
test esi, esi
jne 0x140005d3d
test byte [rbx + 0x110], 1
je 0x140005d33
mov eax, dword [rbp + 0xa8]
lea rcx, [0x14001b730]
mov dword [rsp + 0x28], eax
lea r9, [rbx + 0x10148]
mov qword [rbx + 0x10158], rcx
lea rdx, [rbp - 0x30]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbp - 0x38]
call fcn.1400046b0
mov rdx, qword [rbx + 0x68]
lea r8, [rbp - 0x30]
mov rcx, qword [rbx + 0x40]
mov r9d, eax
mov edi, eax
mov dword [rbx + 0x10160], eax
call qword [rbx + 0x18]
cmp eax, edi
je 0x140005d33
mov esi, r14d
mov eax, r14d
jmp 0x1400058bc
mov dword [rbx + 0x88], 1
mov eax, esi
jmp 0x1400058bc
mov eax, 0xffffff9a
jmp 0x1400058ce