Function at 0x434aeb
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov qword [rsp + 0x48], 0
mov rsi, rcx
mov rbx, rdx
cmp r8b, 1
je 0x435291
test r8b, r8b
je 0x434b45
cmp r8b, 2
je 0x434c1c
cmp r8b, 3
jne 0x4358b9
mov r8, rdx
lea rcx, [rsp + 0x48]
xor r9d, r9d
mov rdx, rsi
call fcn.00434735
jmp 0x4358b9
cmp rdx, 0x12
jle 0x434b6e
cmp byte [rcx], 0x1f
jne 0x434b74
cmp byte [rcx + 1], 0x8b
jne 0x434b74
cmp byte [rcx + 2], 8
jne 0x434b74
mov r8d, 2
test byte [rcx + 3], 0xe0
je 0x434bee
jmp 0x434b74
cmp rdx, 6
jle 0x434ba2
mov al, byte [rsi]
mov edx, eax
and edx, 0xf
cmp dl, 8
jne 0x434ba2
test al, al
js 0x434ba2
movzx edx, byte [rsi + 1]
shl eax, 8
mov ecx, 0x1f
mov r8d, 1
add eax, edx
xor edx, edx
div cx
test dx, dx
je 0x434bee
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a4e0]
mov rbx, rax
mov rax, qword [0x00474460]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0044aa63
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x434c03
mov rcx, rsi
call fcn.0040a5c4
jmp 0x434c03
mov rdx, rbx
mov rcx, rsi
call fcn.00434aeb
mov qword [rsp + 0x48], rax
jmp 0x4358b9
lea rcx, [rbx + 8]
xor edx, edx
call fcn.0040a811
mov qword [rsp + 0x20], 0x7d
jmp 0x43589c
cmp rdx, 0x11
jg 0x434c9d
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a340]
mov rdi, rax
mov rax, qword [0x00474460]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x434c6c
mov rcx, rbp
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0xb
lea rdx, str.ZippyError
call fcn.0044c45f
cmp byte [rsi], 0x1f
mov r13b, byte [rsi + 2]
mov bpl, byte [rsi + 3]
jne 0x434cb0
cmp byte [rsi + 1], 0x8b
je 0x434d2b
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a300]
mov rdi, rax
mov rax, qword [0x00474460]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test r12, r12
je 0x434cfa
mov rcx, r12
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x17
lea rdx, str.ZippyError
call fcn.0044c45f
cmp r13b, 8
je 0x434dac
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a2c0]
mov rdi, rax
mov rax, qword [0x00474460]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test r12, r12
je 0x434d7b
mov rcx, r12
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x1a
lea rdx, str.ZippyError
call fcn.0044c45f
test bpl, 0xe0
je 0x434e2d
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a280]
mov rdi, rax
mov rax, qword [0x00474460]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test r12, r12
je 0x434dfc
mov rcx, r12
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x1d
lea rdx, str.ZippyError
call fcn.0044c45f
mov r14d, ebp
mov r12d, ebp
and r14d, 8
and r12d, 0x10
test bpl, 4
je 0x434ebc
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a240]
mov rdi, rax
mov rax, qword [0x00474460]
mov r13, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test r13, r13
je 0x434e8b
mov rcx, r13
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x29
lea rdx, str.ZippyError
call fcn.0044c45f
mov r13d, 0xa
test r14b, r14b
je 0x434ee6
mov r8d, 0xa
mov rdx, rbx
mov rcx, rsi
call fcn.004339f3
add rax, 1
mov r13, rax
jno 0x434ee6
call fcn.0044c4f5
test r12b, r12b
je 0x434f02
mov r8, r13
mov rdx, rbx
mov rcx, rsi
call fcn.004339f3
add rax, 1
jo 0x434ee1
mov r13, rax
and bpl, 2
je 0x434f92
add r13, 2
jo 0x434ee1
cmp rbx, r13
jg 0x434f92
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a340]
mov rdi, rax
mov rax, qword [0x00474460]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x434f61
mov rcx, rbp
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x39
lea rdx, str.ZippyError
call fcn.0044c45f
mov rax, r13
add rax, 8
jo 0x434ee1
cmp rbx, rax
jg 0x43501f
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a340]
mov rdi, rax
mov rax, qword [0x00474460]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x434fee
mov rcx, rbp
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x3e
lea rdx, str.ZippyError
call fcn.0044c45f
mov rdx, rbx
sub rdx, 8
jo 0x434ee1
mov rax, rbx
xor edi, edi
sub rax, 4
seto dil
jo 0x434ee1
mov r12d, dword [rsi + rdx]
lea rcx, [rsp + 0x48]
mov r9, r13
mov r8, rbx
mov rdx, rsi
mov ebp, dword [rsi + rax]
xor r13d, r13d
call fcn.00434735
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x435069
mov r13, qword [rcx]
call fcn.00415984
lea rcx, [rsp + 0x50]
mov edx, 0x10
mov rsi, rax
call fcn.0040a777
xor ecx, ecx
mov eax, 1
cpuid
bt ecx, 0x13
jae 0x4350b0
and cl, 2
je 0x4350b0
cmp r13, 0x3f
jle 0x4350b0
mov rbx, r13
mov rcx, rsi
and rbx, 0xfffffffffffffff0
mov rdx, rbx
call fcn.00402a90
not eax
jmp 0x4350b4
xor ebx, ebx
xor eax, eax
cmp r13, rbx
jle 0x43517f
mov rdx, r13
lea rcx, [rsi + rbx]
lea r10, [0x004681c0]
not eax
sub rdx, rbx
mov r11, rdx
sar r11, 3
cmp r11, rdi
jne 0x4350ec
shl r11, 3
lea r9, [0x004681c0]
jmp 0x435178
mov ebx, dword [rcx + rdi*8 + 4]
xor eax, dword [rcx + rdi*8]
inc rdi
mov r8d, ebx
movzx r9d, bl
movzx esi, bh
shr ebx, 0x10
shr r8d, 0x18
mov r9d, dword [r10 + r9*4 + 0xc00]
movzx ebx, bl
xor r9d, dword [r10 + r8*4]
movzx r8d, al
xor r9d, dword [r10 + r8*4 + 0x1c00]
mov r8d, eax
shr r8d, 0x18
xor r9d, dword [r10 + r8*4 + 0x1000]
xor r9d, dword [r10 + rsi*4 + 0x800]
xor r9d, dword [r10 + rbx*4 + 0x400]
movzx ebx, ah
shr eax, 0x10
movzx r8d, al
xor r9d, dword [r10 + rbx*4 + 0x1800]
mov eax, dword [r10 + r8*4 + 0x1400]
xor eax, r9d
jmp 0x4350d7
mov r8b, byte [rcx + r11]
inc r11
xor r8d, eax
shr eax, 8
movzx r8d, r8b
xor eax, dword [r9 + r8*4]
cmp rdx, r11
jg 0x435163
not eax
cmp r12d, eax
je 0x4351ff
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a200]
mov rbx, rax
mov rax, qword [0x00474460]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0044aa63
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x4351ce
mov rcx, rsi
call fcn.0040a5c4
lea rcx, [rbx + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rbx
mov qword [rsp + 0x20], 0x4a
lea rdx, str.ZippyError
call fcn.0044c45f
mov rax, qword [rsp + 0x48]
xor edx, edx
test rax, rax
je 0x435218
mov rax, qword [rax]
mov ecx, 0x80000000
cqo
idiv rcx
cmp ebp, edx
je 0x4358b9
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a1c0]
mov rbx, rax
mov rax, qword [0x00474460]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0044aa63
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x43526a
mov rcx, rsi
call fcn.0040a5c4
lea rcx, [rbx + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.gzip.nim
mov qword [rsp + 0x20], 0x4d
lea r8, str.uncompressGzip
jmp 0x4358aa
cmp rdx, 5
jg 0x435312
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a4a0]
mov rdi, rax
mov rax, qword [0x00474460]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x4352e1
mov rcx, rbp
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, rdi
mov qword [rsp + 0x20], 0x84
lea rdx, str.ZippyError
call fcn.0044c45f
mov dil, byte [rsi]
mov bpl, byte [rsi + 1]
mov eax, edi
mov r14d, edi
and eax, 0xf
shr r14b, 4
cmp al, 8
je 0x4353ad
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a460]
mov r12, rax
mov rax, qword [0x00474460]
mov r13, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, str.ZippyError
mov qword [r12 + 0x10], rax
call fcn.0044aa63
mov qword [r12 + 0x18], rax
test r13, r13
je 0x43537b
mov rcx, r13
call fcn.0040a5c4
lea rcx, [r12 + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, r12
mov qword [rsp + 0x20], 0x8d
lea rdx, str.ZippyError
call fcn.0044c45f
cmp r14b, 7
jbe 0x435437
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a420]
mov r12, rax
mov rax, qword [0x00474460]
mov r13, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, str.ZippyError
mov qword [r12 + 0x10], rax
call fcn.0044aa63
mov qword [r12 + 0x18], rax
test r13, r13
je 0x435405
mov rcx, r13
call fcn.0040a5c4
lea rcx, [r12 + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, r12
mov qword [rsp + 0x20], 0x90
lea rdx, str.ZippyError
call fcn.0044c45f
shl edi, 8
movzx eax, bpl
mov ecx, 0x1f
xor edx, edx
add eax, edi
div cx
test dx, dx
je 0x4354ca
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a400]
mov rdi, rax
mov rax, qword [0x00474460]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test r12, r12
je 0x435499
mov rcx, r12
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, rdi
mov qword [rsp + 0x20], 0x93
lea rdx, str.ZippyError
call fcn.0044c45f
and bpl, 0x20
je 0x43554b
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a3c0]
mov rdi, rax
mov rax, qword [0x00474460]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0044aa63
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x43551a
mov rcx, rbp
call fcn.0040a5c4
lea rcx, [rdi + 8]
xor edx, edx
call fcn.0040a811
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, rdi
mov qword [rsp + 0x20], 0x96
lea rdx, str.ZippyError
call fcn.0044c45f
lea rcx, [rsp + 0x48]
mov r9d, 2
mov r8, rbx
mov rdx, rsi
call fcn.00434735
mov rcx, rbx
sub rcx, 4
jo 0x434ee1
mov rdx, rbx
sub rdx, 3
jo 0x434ee1
mov rax, rbx
sub rax, 2
jo 0x434ee1
xor edi, edi
sub rbx, 1
seto dil
mov qword [rsp + 0x30], rdi
jo 0x434ee1
mov dil, byte [rsi + rcx]
mov al, byte [rsi + rax]
mov rcx, qword [rsp + 0x48]
mov byte [rsp + 0x38], dil
mov dil, byte [rsi + rdx]
mov byte [rsp + 0x3e], al
mov al, byte [rsi + rbx]
mov byte [rsp + 0x3d], dil
xor edi, edi
mov byte [rsp + 0x3f], al
test rcx, rcx
je 0x4355cc
mov rdi, qword [rcx]
call fcn.00415984
lea rcx, [rsp + 0x50]
mov edx, 0x10
mov rsi, rax
call fcn.0040a777
xor ecx, ecx
mov eax, 1
cpuid
bt ecx, 9
jb 0x43580d
xor ecx, ecx
xor r10d, r10d
mov r8d, 1
mov r11d, 0xfff1
cmp rdi, 0x15af
jle 0x4357bc
mov edx, 0x2b6
mov r15, rcx
add r15, 1
jo 0x434ee1
mov r14, rcx
add r14, 2
jo 0x434ee1
mov r13, rcx
add r13, 3
jo 0x434ee1
mov r12, rcx
add r12, 4
jo 0x434ee1
mov rbp, rcx
add rbp, 5
jo 0x434ee1
mov rbx, rcx
add rbx, 6
jo 0x434ee1
mov rax, rcx
add rax, 7
jo 0x434ee1
movzx r9d, byte [rsi + rcx]
movzx r15d, byte [rsi + r15]
movzx r14d, byte [rsi + r14]
movzx r13d, byte [rsi + r13]
add r9d, r8d
movzx r12d, byte [rsi + r12]
movzx ebp, byte [rsi + rbp]
add r15d, r9d
movzx ebx, byte [rsi + rbx]
movzx r8d, byte [rsi + rax]
add r14d, r15d
add r9d, r15d
add r13d, r14d
add r9d, r14d
add r12d, r13d
add r9d, r13d
add ebp, r12d
add r9d, r12d
add ebx, ebp
add ebp, r9d
add r8d, ebx
add ebx, ebp
add ebx, r8d
add r10d, ebx
add rcx, 8
jo 0x434ee1
dec rdx
jne 0x435619
mov eax, r8d
xor edx, edx
sub rdi, 0x15b0
div r11d
mov eax, r10d
mov r8d, edx
xor edx, edx
div r11d
mov r10d, edx
jmp 0x435607
mov r12, rcx
sub rdi, 8
add r12, 1
jo 0x434ee1
mov rbp, rcx
add rbp, 2
jo 0x434ee1
mov rbx, rcx
add rbx, 3
jo 0x434ee1
mov r11, rcx
add r11, 4
jo 0x434ee1
mov rdx, rcx
add rdx, 5
jo 0x434ee1
mov rax, rcx
add rax, 6
jo 0x434ee1
mov r15, rcx
add r15, 7
jo 0x434ee1
movzx r9d, byte [rsi + rcx]
movzx r14d, byte [rsi + r12]
movzx r13d, byte [rsi + rbp]
movzx r12d, byte [rsi + rbx]
add r9d, r8d
movzx ebp, byte [rsi + r11]
movzx ebx, byte [rsi + rdx]
add r14d, r9d
movzx r11d, byte [rsi + rax]
movzx r8d, byte [rsi + r15]
add r9d, r14d
add r13d, r14d
add r10d, r9d
add r12d, r13d
add r10d, r13d
add ebp, r12d
add r10d, r12d
add ebx, ebp
add r10d, ebp
add r11d, ebx
add r10d, ebx
add r8d, r11d
add r10d, r11d
add r10d, r8d
add rcx, 8
jo 0x434ee1
cmp rdi, 7
jg 0x4356fd
jmp 0x4357e5
mov rax, qword [rsp + 0x30]
add rax, rcx
jo 0x434ee1
movzx eax, byte [rsi + rax]
inc qword [rsp + 0x30]
add r8d, eax
add r10d, r8d
cmp rdi, qword [rsp + 0x30]
jg 0x4357c8
mov ecx, 0xfff1
mov eax, r10d
xor edx, edx
div ecx
mov eax, r8d
mov r10d, edx
xor edx, edx
div ecx
shl r10d, 0x10
mov eax, r10d
or eax, edx
jmp 0x435818
mov rdx, rdi
mov rcx, rsi
call fcn.0043155a
mov ecx, dword [rsp + 0x38]
movzx edx, byte [rsp + 0x3d]
shl ecx, 0x18
shl edx, 0x10
or ecx, edx
movzx edx, byte [rsp + 0x3e]
shl edx, 8
or ecx, edx
movzx edx, byte [rsp + 0x3f]
or ecx, edx
cmp ecx, eax
je 0x4358b9
mov rcx, qword [0x00474180]
mov edx, 0x30
call fcn.0044aac7
lea rcx, [0x0046a380]
mov rbx, rax
mov rax, qword [0x00474460]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0044aa63
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x435888
mov rcx, rsi
call fcn.0040a5c4
lea rcx, [rbx + 8]
xor edx, edx
call fcn.0040a811
mov qword [rsp + 0x20], 0xa2
lea r9, str.zippy.nim
lea r8, str.uncompress
lea rdx, str.ZippyError
mov rcx, rbx
call fcn.0044c45f
mov rax, qword [rsp + 0x48]
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret