Function at 0x42925a
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 0x429a00
test r8b, r8b
je 0x4292b4
cmp r8b, 2
je 0x42938b
cmp r8b, 3
jne 0x42a028
mov r8, rdx
lea rcx, [rsp + 0x48]
xor r9d, r9d
mov rdx, rsi
call fcn.00428ea4
jmp 0x42a028
cmp rdx, 0x12
jle 0x4292dd
cmp byte [rcx], 0x1f
jne 0x4292e3
cmp byte [rcx + 1], 0x8b
jne 0x4292e3
cmp byte [rcx + 2], 8
jne 0x4292e3
mov r8d, 2
test byte [rcx + 3], 0xe0
je 0x42935d
jmp 0x4292e3
cmp rdx, 6
jle 0x429311
mov al, byte [rsi]
mov edx, eax
and edx, 0xf
cmp dl, 8
jne 0x429311
test al, al
js 0x429311
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 0x42935d
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c660]
mov rbx, rax
mov rax, qword [0x00467610]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0043e965
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x429372
mov rcx, rsi
call fcn.004079ac
jmp 0x429372
mov rdx, rbx
mov rcx, rsi
call fcn.0042925a
mov qword [rsp + 0x48], rax
jmp 0x42a028
lea rcx, [rbx + 8]
xor edx, edx
call fcn.00407bf9
mov qword [rsp + 0x20], 0x7d
jmp 0x42a00b
cmp rdx, 0x11
jg 0x42940c
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c4c0]
mov rdi, rax
mov rax, qword [0x00467610]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x4293db
mov rcx, rbp
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0xb
lea rdx, str.ZippyError
call fcn.0044073e
cmp byte [rsi], 0x1f
mov r13b, byte [rsi + 2]
mov bpl, byte [rsi + 3]
jne 0x42941f
cmp byte [rsi + 1], 0x8b
je 0x42949a
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c480]
mov rdi, rax
mov rax, qword [0x00467610]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test r12, r12
je 0x429469
mov rcx, r12
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x17
lea rdx, str.ZippyError
call fcn.0044073e
cmp r13b, 8
je 0x42951b
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c440]
mov rdi, rax
mov rax, qword [0x00467610]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test r12, r12
je 0x4294ea
mov rcx, r12
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x1a
lea rdx, str.ZippyError
call fcn.0044073e
test bpl, 0xe0
je 0x42959c
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c400]
mov rdi, rax
mov rax, qword [0x00467610]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test r12, r12
je 0x42956b
mov rcx, r12
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x1d
lea rdx, str.ZippyError
call fcn.0044073e
mov r14d, ebp
mov r12d, ebp
and r14d, 8
and r12d, 0x10
test bpl, 4
je 0x42962b
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c3c0]
mov rdi, rax
mov rax, qword [0x00467610]
mov r13, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test r13, r13
je 0x4295fa
mov rcx, r13
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x29
lea rdx, str.ZippyError
call fcn.0044073e
mov r13d, 0xa
test r14b, r14b
je 0x429655
mov r8d, 0xa
mov rdx, rbx
mov rcx, rsi
call fcn.00428162
add rax, 1
mov r13, rax
jno 0x429655
call fcn.0044097b
test r12b, r12b
je 0x429671
mov r8, r13
mov rdx, rbx
mov rcx, rsi
call fcn.00428162
add rax, 1
jo 0x429650
mov r13, rax
and bpl, 2
je 0x429701
add r13, 2
jo 0x429650
cmp rbx, r13
jg 0x429701
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c4c0]
mov rdi, rax
mov rax, qword [0x00467610]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x4296d0
mov rcx, rbp
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x39
lea rdx, str.ZippyError
call fcn.0044073e
mov rax, r13
add rax, 8
jo 0x429650
cmp rbx, rax
jg 0x42978e
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c4c0]
mov rdi, rax
mov rax, qword [0x00467610]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x42975d
mov rcx, rbp
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rdi
mov qword [rsp + 0x20], 0x3e
lea rdx, str.ZippyError
call fcn.0044073e
mov rdx, rbx
sub rdx, 8
jo 0x429650
mov rax, rbx
xor edi, edi
sub rax, 4
seto dil
jo 0x429650
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.00428ea4
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x4297d8
mov r13, qword [rcx]
call fcn.004134e5
lea rcx, [rsp + 0x50]
mov edx, 0x10
mov rsi, rax
call fcn.00407b5f
xor ecx, ecx
mov eax, 1
cpuid
bt ecx, 0x13
jae 0x42981f
and cl, 2
je 0x42981f
cmp r13, 0x3f
jle 0x42981f
mov rbx, r13
mov rcx, rsi
and rbx, 0xfffffffffffffff0
mov rdx, rbx
call fcn.00403659
not eax
jmp 0x429823
xor ebx, ebx
xor eax, eax
cmp r13, rbx
jle 0x4298ee
mov rdx, r13
lea rcx, [rsi + rbx]
lea r10, [0x0045a340]
not eax
sub rdx, rbx
mov r11, rdx
sar r11, 3
cmp r11, rdi
jne 0x42985b
shl r11, 3
lea r9, [0x0045a340]
jmp 0x4298e7
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 0x429846
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 0x4298d2
not eax
cmp r12d, eax
je 0x42996e
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c380]
mov rbx, rax
mov rax, qword [0x00467610]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0043e965
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x42993d
mov rcx, rsi
call fcn.004079ac
lea rcx, [rbx + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
lea r8, str.uncompressGzip
mov rcx, rbx
mov qword [rsp + 0x20], 0x4a
lea rdx, str.ZippyError
call fcn.0044073e
mov rax, qword [rsp + 0x48]
xor edx, edx
test rax, rax
je 0x429987
mov rax, qword [rax]
mov ecx, 0x80000000
cqo
idiv rcx
cmp ebp, edx
je 0x42a028
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c340]
mov rbx, rax
mov rax, qword [0x00467610]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0043e965
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x4299d9
mov rcx, rsi
call fcn.004079ac
lea rcx, [rbx + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.gzip.nim
mov qword [rsp + 0x20], 0x4d
lea r8, str.uncompressGzip
jmp 0x42a019
cmp rdx, 5
jg 0x429a81
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c620]
mov rdi, rax
mov rax, qword [0x00467610]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x429a50
mov rcx, rbp
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, rdi
mov qword [rsp + 0x20], 0x84
lea rdx, str.ZippyError
call fcn.0044073e
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 0x429b1c
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c5e0]
mov r12, rax
mov rax, qword [0x00467610]
mov r13, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, str.ZippyError
mov qword [r12 + 0x10], rax
call fcn.0043e965
mov qword [r12 + 0x18], rax
test r13, r13
je 0x429aea
mov rcx, r13
call fcn.004079ac
lea rcx, [r12 + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, r12
mov qword [rsp + 0x20], 0x8d
lea rdx, str.ZippyError
call fcn.0044073e
cmp r14b, 7
jbe 0x429ba6
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c5a0]
mov r12, rax
mov rax, qword [0x00467610]
mov r13, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, str.ZippyError
mov qword [r12 + 0x10], rax
call fcn.0043e965
mov qword [r12 + 0x18], rax
test r13, r13
je 0x429b74
mov rcx, r13
call fcn.004079ac
lea rcx, [r12 + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, r12
mov qword [rsp + 0x20], 0x90
lea rdx, str.ZippyError
call fcn.0044073e
shl edi, 8
movzx eax, bpl
mov ecx, 0x1f
xor edx, edx
add eax, edi
div cx
test dx, dx
je 0x429c39
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c580]
mov rdi, rax
mov rax, qword [0x00467610]
mov r12, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test r12, r12
je 0x429c08
mov rcx, r12
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, rdi
mov qword [rsp + 0x20], 0x93
lea rdx, str.ZippyError
call fcn.0044073e
and bpl, 0x20
je 0x429cba
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c540]
mov rdi, rax
mov rax, qword [0x00467610]
mov rbp, qword [rdi + 0x18]
mov qword [rdi], rax
lea rax, str.ZippyError
mov qword [rdi + 0x10], rax
call fcn.0043e965
mov qword [rdi + 0x18], rax
test rbp, rbp
je 0x429c89
mov rcx, rbp
call fcn.004079ac
lea rcx, [rdi + 8]
xor edx, edx
call fcn.00407bf9
lea r9, str.zippy.nim
lea r8, str.uncompress
mov rcx, rdi
mov qword [rsp + 0x20], 0x96
lea rdx, str.ZippyError
call fcn.0044073e
lea rcx, [rsp + 0x48]
mov r9d, 2
mov r8, rbx
mov rdx, rsi
call fcn.00428ea4
mov rcx, rbx
sub rcx, 4
jo 0x429650
mov rdx, rbx
sub rdx, 3
jo 0x429650
mov rax, rbx
sub rax, 2
jo 0x429650
xor edi, edi
sub rbx, 1
seto dil
mov qword [rsp + 0x30], rdi
jo 0x429650
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 0x429d3b
mov rdi, qword [rcx]
call fcn.004134e5
lea rcx, [rsp + 0x50]
mov edx, 0x10
mov rsi, rax
call fcn.00407b5f
xor ecx, ecx
mov eax, 1
cpuid
bt ecx, 9
jb 0x429f7c
xor ecx, ecx
xor r10d, r10d
mov r8d, 1
mov r11d, 0xfff1
cmp rdi, 0x15af
jle 0x429f2b
mov edx, 0x2b6
mov r15, rcx
add r15, 1
jo 0x429650
mov r14, rcx
add r14, 2
jo 0x429650
mov r13, rcx
add r13, 3
jo 0x429650
mov r12, rcx
add r12, 4
jo 0x429650
mov rbp, rcx
add rbp, 5
jo 0x429650
mov rbx, rcx
add rbx, 6
jo 0x429650
mov rax, rcx
add rax, 7
jo 0x429650
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 0x429650
dec rdx
jne 0x429d88
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 0x429d76
mov r12, rcx
sub rdi, 8
add r12, 1
jo 0x429650
mov rbp, rcx
add rbp, 2
jo 0x429650
mov rbx, rcx
add rbx, 3
jo 0x429650
mov r11, rcx
add r11, 4
jo 0x429650
mov rdx, rcx
add rdx, 5
jo 0x429650
mov rax, rcx
add rax, 6
jo 0x429650
mov r15, rcx
add r15, 7
jo 0x429650
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 0x429650
cmp rdi, 7
jg 0x429e6c
jmp 0x429f54
mov rax, qword [rsp + 0x30]
add rax, rcx
jo 0x429650
movzx eax, byte [rsi + rax]
inc qword [rsp + 0x30]
add r8d, eax
add r10d, r8d
cmp rdi, qword [rsp + 0x30]
jg 0x429f37
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 0x429f87
mov rdx, rdi
mov rcx, rsi
call fcn.004257f5
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 0x42a028
mov rcx, qword [0x004673c0]
mov edx, 0x30
call fcn.0043e9c9
lea rcx, [0x0045c500]
mov rbx, rax
mov rax, qword [0x00467610]
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
lea rax, str.ZippyError
mov qword [rbx + 0x10], rax
call fcn.0043e965
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x429ff7
mov rcx, rsi
call fcn.004079ac
lea rcx, [rbx + 8]
xor edx, edx
call fcn.00407bf9
mov qword [rsp + 0x20], 0xa2
lea r9, str.zippy.nim
lea r8, str.uncompress
lea rdx, str.ZippyError
mov rcx, rbx
call fcn.0044073e
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