Function at 0x140020e00
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [rcx + 0x208]
lea rbx, [rcx + 0xe0]
mov r12, rcx
mov qword [rbp - 0x68], rbx
cmp qword [rbx + 0x20], rax
je 0x140020f1d
mov rbx, qword [rcx + 0x70]
lea r8, [0x140083621]
lea rdx, [rbp - 8]
mov eax, dword [rbx + 0xd8]
add r8, qword [rbx + 0xe8]
lea esi, [rax - 0x5dd3aa1f]
lea edi, [rax - 0x5dd3aa3a]
mov ecx, esi
call fcn.14000aeb0
lea r8, [0x140083886]
lea rdx, [rbp + rsi - 8]
add r8, qword [rbx + 0xe8]
mov ecx, edi
call fcn.14000aeb0
mov rax, qword [r12 + 0x70]
add esi, edi
mov edi, dword [rax + 0xd8]
sub edi, 0x5dd3aa04
je 0x140020f11
lea r8d, [rdi + rsi]
xor edx, edx
mov rcx, rax
call qword [rax + 0xc8]
mov rbx, rax
test rax, rax
je 0x140020f03
mov edx, edi
lea r8, [rbp - 8]
mov ecx, esi
add rdx, rax
call fcn.14000aeb0
xor r13d, r13d
lea rax, [fcn.1400203b0]
mov dword [rbx + 0x2c], esi
mov qword [rbx + 0x20], r13
test rax, rax
je 0x140020ee8
mov dword [rbx + 0x28], 1
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x18], r13
mov dword [rbx + 0x10], r13d
mov r9, rbx
mov r8, r12
mov edx, 1
mov rcx, r12
call fcn.140014160
mov eax, r13d
jmp 0x140021a72
mov r13d, 8
mov eax, r13d
jmp 0x140021a72
mov r13d, dword [rbp + 0x70]
mov eax, r13d
jmp 0x140021a72
mov r12, qword [rcx + 0x70]
mov rax, qword [rbx + 0x20]
xor r13d, r13d
mov qword [rsp + 0x128], r15
mov esi, r13d
mov dword [rbp + 0x88], r13d
mov qword [rbp - 0x10], r12
mov qword [rsp + 0x70], r13
mov qword [rbp - 0x58], r13
mov r15, rbx
mov ecx, r13d
test rax, rax
je 0x140020f76
cmp byte [rax], cl
je 0x140020f76
inc rax
inc ecx
cmp byte [rax], sil
jne 0x140020f56
test ecx, ecx
je 0x140020f76
mov eax, dword [r12 + 0xd8]
lea r14d, [rax + rcx - 0x5dd3a577]
jmp 0x140020fcb
lea rax, [rbx + 0xb0]
lea r8, [rbp - 0x78]
lea rdx, [rbp - 0x80]
mov qword [rbp - 0x18], rax
lea rax, [rbx + 0x60]
lea rcx, [rbp - 0x18]
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], r13d
call fcn.14005acb0
test al, al
jne 0x140020faa
lock or dword [rbx + 0x10c], 1
mov rax, qword [rbx + 0x20]
mov esi, dword [rbp + 0x70]
mov r14d, r13d
test rax, rax
je 0x140020fcb
cmp byte [rax], r13b
je 0x140020fcb
nop
inc rax
inc r14d
cmp byte [rax], r13b
jne 0x140020fc0
mov r8d, r14d
xor edx, edx
mov rcx, r12
call qword [r12 + 0xc8]
mov qword [rbp - 0x80], rax
test rax, rax
je 0x140021a61
mov r8d, dword [r12 + 0xd8]
mov rcx, qword [r12 + 0x92b8]
mov edx, 0xbf984620
call qword [r12 + 0x260]
test rax, rax
je 0x1400216be
call rax
mov edi, eax
test eax, eax
je 0x1400216be
mov rcx, r12
mov esi, 0x40
call fcn.14000c620
shr eax, 0xc
mov dword [rbp + 0x88], eax
test eax, eax
je 0x14002168d
lea r8, [rbp - 0x48]
lea rcx, [rbp - 0x38]
or rdx, 0xffffffffffffffff
mov qword [rbp - 0x48], r12
call fcn.14000b8e0
test eax, eax
jne 0x140021130
mov rbx, qword [rbp - 0x38]
test rbx, rbx
je 0x1400210ef
movzx ecx, word [rbx]
mov rax, rbx
mov r9d, r13d
test cx, cx
je 0x140021087
test rax, rax
je 0x14002107e
add rax, 2
inc r9d
jmp 0x140021081
mov r9d, r13d
cmp word [rax], r13w
jne 0x140021070
mov rax, rbx
mov rdx, r13
test cx, cx
je 0x1400210c1
test rax, rax
je 0x1400210a2
cmp cx, 0x5c
jne 0x1400210a5
mov rdx, rax
jmp 0x1400210a5
mov rdx, r13
movzx ecx, word [rax + 2]
add rax, 2
test cx, cx
jne 0x140021092
test rdx, rdx
je 0x1400210c1
add rdx, 2
mov qword [rbp - 0x28], rdx
jmp 0x1400210c8
mov rdx, rbx
mov qword [rbp - 0x28], rbx
sub rdx, rbx
lea rax, [rbp - 0x60]
lea r8, [rbp - 0x20]
sar rdx, 1
lea rcx, [rbp - 0x28]
mov qword [rsp + 0x20], rax
sub r9d, edx
mov rdx, r12
inc r9d
call fcn.140002890
jmp 0x140021117
mov rcx, qword [rbp - 0x48]
xor r8d, r8d
mov rdx, rcx
call fcn.140001a90
lea r8, [rbp - 0x48]
lea rcx, [rbp - 0x38]
or rdx, 0xffffffffffffffff
mov qword [rbp - 0x48], r12
call fcn.14000b8e0
mov rbx, qword [rbp - 0x38]
mov rdx, rbx
mov rcx, r12
call qword [r12 + 0x230]
mov rbx, qword [rbp - 0x60]
mov qword [rsp + 0x78], rbx
jmp 0x140021135
mov qword [rsp + 0x78], r13
mov rax, qword [r12 + 0x92a8]
lea rcx, [rbp + 0x78]
xor r9d, r9d
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r13
mov r8d, 0xf8efa01
mov rdx, rax
mov rcx, r12
mov dword [rsp + 0x28], 2
mov qword [rbp - 0x60], rax
mov qword [rsp + 0x70], r13
mov dword [rbp + 0x78], r13d
mov qword [rsp + 0x20], 0x7f
call fcn.140007f50
mov r8d, dword [rbp + 0x78]
cmp r8d, 1
jbe 0x1400212a5
test r8d, r8d
je 0x1400212a5
shl r8d, 2
xor edx, edx
mov rcx, r12
call qword [r12 + 0xc8]
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400212a5
mov eax, dword [rbp + 0x78]
test eax, eax
je 0x1400211c3
lea rbx, [rbx + rax*2]
jmp 0x1400211f5
xor r8d, r8d
xor edx, edx
mov rcx, r12
mov dword [rbp + 0x78], r13d
call qword [r12 + 0xc8]
mov r8d, dword [rbp + 0x78]
shl r8d, 2
xor edx, edx
mov rcx, r12
call qword [r12 + 0xc8]
mov rbx, qword [rbp + 0x70]
mov qword [rsp + 0x70], rax
mov rdx, qword [rbp - 0x60]
lea rax, [rbp + 0x78]
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov r8d, 0xf8efa01
mov rcx, r12
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], r13
call fcn.140007f50
test eax, eax
je 0x140021290
test rbx, rbx
je 0x140021341
mov r8d, dword [r12 + 0xd8]
mov rcx, qword [r12 + 0x92b8]
mov edx, 0x38acb04a
call qword [r12 + 0x260]
test rax, rax
je 0x14002128c
mov r9d, dword [rbp + 0x78]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
lea ecx, [r9*4]
mov r8, rbx
xor edx, edx
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x20], rcx
mov ecx, 0xfde9
call rax
mov dword [rbp + 0x78], eax
jmp 0x140021344
mov dword [rbp + 0x78], r13d
mov rdx, qword [rsp + 0x70]
mov rcx, r12
call qword [r12 + 0x230]
mov qword [rsp + 0x70], r13
mov rax, qword [r12 + 0x92b8]
mov qword [rbp - 0x60], rax
test rax, rax
je 0x14002145a
lea rcx, [rbp + 0x80]
xor r9d, r9d
mov r8d, 0xec7b2464
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r13
mov rdx, rax
mov rcx, r12
mov dword [rsp + 0x28], 2
mov r15, r13
mov qword [rsp + 0x20], 0x7f
mov dword [rbp + 0x80], r13d
call fcn.140007f50
mov r8d, dword [rbp + 0x80]
cmp r8d, 1
jbe 0x14002169a
test r8d, r8d
je 0x14002169a
shl r8d, 2
xor edx, edx
mov rcx, r12
call qword [r12 + 0xc8]
mov r15, rax
test rax, rax
je 0x14002169a
mov eax, dword [rbp + 0x80]
test eax, eax
je 0x14002135c
lea rbx, [r15 + rax*2]
jmp 0x140021392
mov eax, dword [rbp + 0x78]
test eax, eax
je 0x140021290
mov rcx, qword [rsp + 0x70]
mov eax, eax
mov byte [rax + rcx], r13b
jmp 0x1400212a5
xor r8d, r8d
xor edx, edx
mov rcx, r12
mov dword [rbp + 0x80], r13d
call qword [r12 + 0xc8]
mov r8d, dword [rbp + 0x80]
shl r8d, 2
xor edx, edx
mov rcx, r12
call qword [r12 + 0xc8]
mov rbx, qword [rbp + 0x70]
mov r15, rax
mov rdx, qword [rbp - 0x60]
lea rax, [rbp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov r8d, 0xec7b2464
mov rcx, r12
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], r13
call fcn.140007f50
test eax, eax
je 0x140021439
test rbx, rbx
je 0x14002142f
mov r8d, dword [r12 + 0xd8]
mov rcx, qword [r12 + 0x92b8]
mov edx, 0x38acb04a
call qword [r12 + 0x260]
test rax, rax
je 0x140021426
mov r9d, dword [rbp + 0x80]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
lea edx, [r9*4]
mov r8, rbx
mov ecx, 0xfde9
mov dword [rsp + 0x28], edx
xor edx, edx
mov qword [rsp + 0x20], r15
call rax
mov dword [rbp + 0x80], eax
jmp 0x140021435
mov dword [rbp + 0x80], r13d
jmp 0x140021439
mov eax, dword [rbp + 0x80]
test eax, eax
jne 0x14002144f
mov rdx, r15
mov rcx, r12
call qword [r12 + 0x230]
mov r15, r13
jmp 0x14002169a
mov eax, eax
mov byte [rax + r15], r13b
jmp 0x14002169a
mov rcx, r15
call fcn.14005afe0
mov r12d, dword [rbp + 0x88]
mov r11, qword [rbp - 0x80]
mov ecx, dword [rbp + 0x70]
mov r8d, r12d
or edi, 0xffffffff
mov r14d, 8
nop dword [rax]
dec r8d
test r11, r11
je 0x14002148f
movsx ecx, byte [r11]
inc r11
test ecx, ecx
jne 0x14002149c
lea eax, [r12 + 1]
test eax, eax
je 0x1400214bc
mov rdx, r14
nop
mov eax, ecx
xor eax, edi
shr edi, 1
test al, 1
je 0x1400214b0
xor edi, 0xedb88320
shr ecx, 1
dec rdx
jne 0x1400214a0
test r8d, r8d
jne 0x140021480
mov r15, qword [rbp - 0x68]
mov r12, qword [rbp - 0x10]
mov ecx, r13d
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x1400214f4
cmp byte [rax], cl
je 0x1400214f4
inc rax
inc ecx
cmp byte [rax], r13b
jne 0x1400214d4
test ecx, ecx
je 0x1400214f4
mov eax, dword [r12 + 0xd8]
lea r14d, [rcx + rax - 0x5dd3a577]
jmp 0x14002156b
mov rcx, r15
call fcn.14005afe0
mov r11, qword [rbp - 0x80]
or esi, 0xffffffff
mov r8d, edi
test edi, edi
je 0x14002154c
mov ecx, dword [rbp + 0x70]
nop dword [rax]
dec r8d
test r11, r11
je 0x14002151f
movsx ecx, byte [r11]
inc r11
test ecx, ecx
jne 0x14002152a
lea eax, [rdi + 1]
test eax, eax
je 0x14002154c
mov rdx, r14
nop dword [rax]
mov eax, ecx
xor eax, esi
shr esi, 1
test al, 1
je 0x140021540
xor esi, 0xedb88320
shr ecx, 1
dec rdx
jne 0x140021530
test r8d, r8d
jne 0x140021510
mov rax, qword [r15 + 0x20]
mov r14d, r13d
test rax, rax
je 0x14002156b
cmp byte [rax], r13b
je 0x14002156b
nop dword [rax]
inc rax
inc r14d
cmp byte [rax], r13b
jne 0x140021560
lea r8, [rbp - 0x40]
lea rcx, [rbp - 0x70]
or rdx, 0xffffffffffffffff
mov qword [rbp - 0x40], r12
call fcn.14000b8e0
test eax, eax
jne 0x140021675
mov rbx, qword [rbp - 0x70]
test rbx, rbx
je 0x140021623
movzx ecx, word [rbx]
mov rax, rbx
mov r9d, r13d
test cx, cx
je 0x1400215ba
test rax, rax
je 0x1400215b1
add rax, 2
inc r9d
jmp 0x1400215b4
mov r9d, r13d
cmp word [rax], r13w
jne 0x1400215a3
mov rax, rbx
mov rdx, r13
test cx, cx
je 0x1400215f4
test rax, rax
je 0x1400215d5
cmp cx, 0x5c
jne 0x1400215d8
mov rdx, rax
jmp 0x1400215d8
mov rdx, r13
movzx ecx, word [rax + 2]
add rax, 2
test cx, cx
jne 0x1400215c5
test rdx, rdx
je 0x1400215f4
add rdx, 2
mov qword [rbp - 0x50], rdx
jmp 0x1400215fb
mov rdx, rbx
mov qword [rbp - 0x50], rbx
sub rdx, rbx
lea rax, [rbp - 0x30]
lea r8, [rsp + 0x78]
sar rdx, 1
lea rcx, [rbp - 0x50]
mov qword [rsp + 0x20], rax
sub r9d, edx
mov rdx, r12
inc r9d
call fcn.140002890
jmp 0x14002164b
mov rcx, qword [rbp - 0x40]
xor r8d, r8d
mov rdx, rcx
call fcn.140001a90
lea r8, [rbp - 0x40]
lea rcx, [rbp - 0x70]
or rdx, 0xffffffffffffffff
mov qword [rbp - 0x40], r12
call fcn.14000b8e0
mov rbx, qword [rbp - 0x70]
mov rdx, rbx
mov rcx, r12
call qword [r12 + 0x230]
mov rbx, qword [rbp - 0x30]
mov rcx, r12
mov qword [rsp + 0x78], rbx
call fcn.14000c620
shr eax, 0xc
mov dword [rbp + 0x88], eax
jmp 0x140021696
mov rcx, r12
mov qword [rsp + 0x78], r13
call fcn.14000c620
shr eax, 0xc
mov dword [rbp + 0x88], eax
jmp 0x140021696
mov rbx, qword [rbp + 0x70]
mov qword [rsp + 0x78], rbx
mov r15, qword [rbp + 0x70]
mov r8, qword [r12 + 0x92b8]
mov r9d, 2
mov edx, 0x28fa2258
mov rcx, r12
call fcn.1400163c0
mov rbx, qword [rbp - 0x68]
jmp 0x14002177b
mov rcx, r15
call fcn.14005afe0
xor edx, edx
xor ecx, ecx
call fcn.140003600
mov rcx, qword [rbx + 0x20]
mov edx, r13d
mov qword [rsp + 0x70], rax
test rcx, rcx
je 0x140021704
cmp byte [rcx], dl
je 0x140021704
inc rcx
inc edx
cmp byte [rcx], r13b
jne 0x1400216e4
test edx, edx
je 0x140021704
mov eax, dword [r12 + 0xd8]
lea r14d, [rdx + rax - 0x5dd3a577]
jmp 0x14002172b
mov rcx, rbx
call fcn.14005afe0
or esi, 0xffffffff
mov rax, qword [rbx + 0x20]
mov r14d, r13d
test rax, rax
je 0x14002172b
cmp byte [rax], r13b
je 0x14002172b
inc rax
inc r14d
cmp byte [rax], r13b
jne 0x140021720
mov r8d, dword [r12 + 0xd8]
mov rcx, qword [r12 + 0x92b8]
mov edx, 0xbf984620
call qword [r12 + 0x260]
test rax, rax
je 0x140021753
call rax
mov edi, eax
jmp 0x140021756
mov edi, r13d
mov r8d, r14d
xor edx, edx
mov rcx, r12
call qword [r12 + 0xc8]
mov r15, qword [rbp + 0x70]
mov qword [rbp - 0x80], rax
mov rax, qword [rbp + 0x70]
mov qword [rsp + 0x78], rax
mov rax, qword [rbp + 0x70]
mov qword [rbp - 0x70], rax
mov eax, dword [r12 + 0xd8]
sub eax, 0x5dd3a9fc
mov dword [rbp - 0x78], eax
je 0x140021a2f
mov r8d, eax
xor edx, edx
mov rcx, r12
call qword [r12 + 0xc8]
mov rbx, rax
mov qword [rbp - 0x50], rax
test rax, rax
je 0x14002181c
mov r8d, dword [r12 + 0xd8]
mov rcx, qword [r12 + 0x268]
mov edx, 0x734df653
call qword [r12 + 0x260]
test rax, rax
je 0x14002181c
movzx ecx, word [r12 + 0x134]
movzx r10d, byte [r12 + 0x13f]
movzx r11d, byte [r12 + 0x136]
movzx r9d, byte [r12 + 0x13c]
mov edx, dword [rbp - 0x78]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], r10d
lea r8, [0x1400836cd]
mov rcx, rbx
add r8, qword [r12 + 0xe8]
mov dword [rsp + 0x20], r11d
call rax
mov rcx, qword [rbp - 0x68]
lea rdx, [rbp - 0x58]
call fcn.140020b20
mov rcx, qword [rbp - 0x58]
mov r8d, dword [r12 + 0xd8]
test eax, eax
mov edx, 0x734df653
cmovne rcx, r13
mov qword [rbp - 0x58], rcx
mov rcx, qword [r12 + 0x268]
call qword [r12 + 0x260]
mov qword [rbp - 0x30], rax
test rax, rax
je 0x140021915
mov rax, qword [rsp + 0x78]
mov rdx, qword [rbp - 0x50]
lea rbx, [0x1400640a0]
test rax, rax
mov r11, rbx
mov r10, rbx
cmovne r11, rax
mov rax, qword [rbp - 0x70]
mov r9, rbx
test rax, rax
mov rcx, rbx
lea r8, [0x14008351e]
cmovne r10, rax
mov rax, qword [rsp + 0x70]
test r15, r15
cmovne r9, r15
test rax, rax
cmovne rcx, rax
test rdx, rdx
mov rax, rbx
cmovne rax, rdx
mov rdx, qword [rbp - 0x58]
test rdx, rdx
cmovne rbx, rdx
add r8, qword [r12 + 0xe8]
mov edx, r14d
mov r14d, dword [rbp + 0x88]
mov dword [rsp + 0x60], r14d
mov dword [rsp + 0x58], esi
mov rsi, qword [rbp - 0x80]
mov dword [rsp + 0x50], edi
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov rbx, qword [rbp - 0x68]
mov rcx, rsi
mov r9, qword [rbx + 0x20]
call qword [rbp - 0x30]
mov rbx, qword [rbp - 0x50]
mov edi, eax
jmp 0x14002191c
mov rsi, qword [rbp - 0x80]
mov edi, r13d
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140021933
mov rdx, rax
mov rcx, r12
call qword [r12 + 0x230]
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14002194b
mov rdx, rax
mov rcx, r12
call qword [r12 + 0x230]
test r15, r15
je 0x14002195e
mov rdx, r15
mov rcx, r12
call qword [r12 + 0x230]
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x140021975
mov rdx, rax
mov rcx, r12
call qword [r12 + 0x230]
test rbx, rbx
je 0x140021988
mov rdx, rbx
mov rcx, r12
call qword [r12 + 0x230]
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1400219a0
mov rdx, rax
mov rcx, r12
call qword [r12 + 0x230]
mov r15, qword [rbp + 0x70]
xor r8d, r8d
lea rax, [fcn.140020630]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
lea edx, [r8 + 1]
mov rcx, r15
mov r9d, edi
mov qword [rsp + 0x20], rsi
call fcn.140014300
mov r14d, eax
test eax, eax
je 0x140021a67
test rsi, rsi
je 0x1400219ef
mov rdx, rsi
mov rcx, r12
call qword [r12 + 0x230]
jmp 0x140021a67
test rbx, rbx
je 0x140021a02
mov rdx, rbx
mov rcx, r12
call qword [r12 + 0x230]
xor r8d, r8d
lea rax, [fcn.140020630]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
lea edx, [r8 + 1]
mov r9d, edi
mov rcx, r15
mov qword [rsp + 0x20], r13
call fcn.140014300
mov r14d, eax
jmp 0x140021a67
mov rcx, rbx
call fcn.14005afe0
mov r8d, dword [r12 + 0xd8]
mov rcx, qword [r12 + 0x92b8]
mov edx, 0xbf984620
call qword [r12 + 0x260]
test rax, rax
je 0x140021a5b
call rax
mov r14d, dword [rbp + 0x70]
jmp 0x140021a67
mov r14d, 8
mov r15, qword [rsp + 0x128]
mov eax, r14d
add rsp, 0x130
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret