Function at 0x180036550
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rbx, rcx
test rcx, rcx
je case.0x180036949.1
mov rdi, qword [rcx + 0x28]
test rdi, rdi
je case.0x180036949.1
mov rsi, qword [rcx + 0x10]
test rsi, rsi
je case.0x180036949.1
mov r15, qword [rcx]
test r15, r15
je 0x1800ae14a
cmp dword [rdi], 0xb
je 0x1800ae15e
mov r10d, dword [rcx + 0x18]
xor r8d, r8d
mov r12d, dword [rcx + 8]
mov ebp, r10d
mov r11d, dword [rdi + 0x40]
mov r14d, r12d
mov r13d, dword [rdi + 0x44]
mov dword [rsp + 0x90], r8d
mov dword [rsp + 0x88], r11d
mov dword [rsp + 0x80], r10d
lea r9, [0x180000000]
movsxd rdx, dword [rdi]
cmp edx, 0x14
jne 0x180036935
cmp r12d, 6
jb 0x180036709
cmp r10d, 0x102
jb 0x180036709
mov qword [rbx + 0x10], rsi
mov rcx, rbx
mov dword [rbx + 0x18], r10d
mov qword [rbx], r15
mov dword [rbx + 8], r12d
mov dword [rdi + 0x40], r11d
mov dword [rdi + 0x44], r13d
call fcn.1800374f0
cmp dword [rdi], 0xb
mov r10d, dword [rbx + 0x18]
mov r11d, dword [rdi + 0x40]
mov rsi, qword [rbx + 0x10]
mov r15, qword [rbx]
mov r12d, dword [rbx + 8]
mov r13d, dword [rdi + 0x44]
mov dword [rsp + 0x80], r10d
mov dword [rsp + 0x88], r11d
je 0x18003727a
cmp r12d, 0xe
jbe 0x180036701
mov dword [rbx + 0x18], r10d
mov dword [rbx + 8], r12d
mov qword [rbx + 0x10], rsi
mov qword [rbx], r15
mov dword [rdi + 0x40], r11d
mov dword [rdi + 0x44], r13d
sub r14d, dword [rbx + 8]
sub ebp, dword [rbx + 0x18]
add dword [rbx + 0xc], r14d
add dword [rbx + 0x1c], ebp
add dword [rdi + 0x1c], ebp
cmp dword [rdi + 8], 0
je 0x1800366a9
test ebp, ebp
je 0x1800366a9
mov rdx, qword [rbx + 0x10]
mov r8d, ebp
mov ecx, dword [rdi + 0x18]
mov eax, ebp
sub rdx, rax
cmp dword [rdi + 0x10], 0
jne 0x1800ae403
call fcn.18003784c
mov dword [rdi + 0x18], eax
mov dword [rbx + 0x4c], eax
mov eax, dword [rdi + 4]
neg eax
mov eax, dword [rdi]
sbb ecx, ecx
and ecx, 0x40
cmp eax, 0xb
je 0x1800ae40e
cmp eax, 0x13
je 0x1800ae418
cmp eax, 0xe
je 0x1800ae418
xor eax, eax
add eax, ecx
add eax, dword [rdi + 0x44]
mov dword [rbx + 0x48], eax
mov eax, dword [rsp + 0x90]
test r14d, r14d
je 0x18003711f
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dword [rdi], 0x19
xor r8d, r8d
jmp 0x1800365d0
mov ecx, dword [rdi + 0x68]
mov edx, 1
shl edx, cl
dec edx
mov eax, r11d
mov dword [rdi + 0x1bdc], r8d
mov r8, qword [rdi + 0x58]
mov ecx, edx
and rcx, rax
mov eax, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, r13d
jbe 0x180036771
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
mov ecx, r11d
add r13d, 8
mov eax, edx
and rax, rcx
mov eax, dword [r8 + rax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, r13d
ja 0x180036739
test al, al
je 0x18003677d
test al, 0xf0
je 0x18003728c
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
sub r13d, ecx
shr r11d, cl
mov ecx, eax
shr ecx, 0x10
mov dword [rsp + 0x88], r11d
mov dword [rdi + 0x48], ecx
test al, al
je 0x1800366fb
test al, 0x20
jne 0x180036a2b
test al, 0x40
jne 0x1800ae3bc
movzx ecx, al
and ecx, 0xf
mov dword [rdi], 0x15
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
je 0x1800367f5
cmp r13d, edx
jb 0x180037170
mov ecx, edx
mov eax, 1
shl eax, cl
sub r13d, edx
dec eax
and eax, r11d
shr r11d, cl
add dword [rdi + 0x48], eax
add dword [rdi + 0x1bdc], edx
mov eax, dword [rdi + 0x48]
mov dword [rdi + 0x1be0], eax
mov dword [rdi], 0x16
mov ecx, dword [rdi + 0x6c]
mov edx, 1
mov r8, qword [rdi + 0x60]
shl edx, cl
dec edx
mov eax, r11d
mov ecx, edx
and rcx, rax
mov eax, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, r13d
ja 0x1800369c5
test al, 0xf0
je 0x180037310
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
sub r13d, ecx
shr r11d, cl
mov dword [rsp + 0x88], r11d
test al, 0x40
jne 0x1800ae334
mov ecx, eax
mov dword [rdi], 0x17
shr ecx, 0x10
lea r9, [0x180000000]
mov dword [rdi + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rdi + 0x50], ecx
xor r8d, r8d
mov edx, dword [rdi + 0x50]
test edx, edx
je 0x1800368d3
cmp r13d, edx
jae 0x1800368ae
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, edx
jb 0x18003688a
mov ecx, edx
mov eax, 1
shl eax, cl
sub r13d, edx
dec eax
and eax, r11d
shr r11d, cl
add dword [rdi + 0x4c], eax
add dword [rdi + 0x1bdc], edx
mov dword [rsp + 0x88], r11d
mov dword [rdi], 0x18
test r10d, r10d
je 0x180036653
mov eax, dword [rdi + 0x4c]
mov edx, r10d
mov rcx, rsi
sub rcx, rax
mov eax, dword [rdi + 0x48]
cmp eax, r10d
cmovbe edx, eax
sub r10d, edx
sub eax, edx
mov dword [rsp + 0x80], r10d
mov dword [rdi + 0x48], eax
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rsi], al
inc rsi
add edx, 0xffffffff
jne 0x180036910
cmp dword [rdi + 0x48], edx
jne 0x1800365d7
mov dword [rdi], 0x14
jmp 0x1800365d7
cmp edx, 0x1e
ja case.0x180036949.1
mov ecx, dword [r9 + rdx*4 + 0x37464]
add rcx, r9
jmp rcx
cmp dword [rdi + 4], 0
jne 0x180036c0f
cmp r13d, 3
jae 0x180036980
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, 3
jb 0x18003695b
mov eax, r11d
shr r11d, 1
and eax, 1
mov dword [rdi + 4], eax
mov eax, r11d
and eax, 3
je 0x1800372fa
sub eax, 1
je 0x18003712c
sub eax, 1
jne 0x1800ae2c7
mov dword [rdi], 0x10
shr r11d, 2
mov dword [rsp + 0x88], r11d
add r13d, 0xfffffffd
jmp 0x1800365d7
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
mov eax, edx
add r13d, 8
mov ecx, r11d
and rcx, rax
mov eax, dword [r8 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, r13d
jbe 0x180036831
jmp 0x1800369c5
test r10d, r10d
je 0x180036653
movzx eax, byte [rdi + 0x48]
mov byte [rsi], al
inc rsi
dec r10d
mov dword [rdi], 0x14
mov dword [rsp + 0x80], r10d
jmp 0x1800365d7
mov dword [rdi + 0x1bdc], 0xffffffff
xor r8d, r8d
mov dword [rdi], 0xb
jmp 0x1800365d0
cmp dword [rdi + 8], 0
je 0x1800ae170
cmp r13d, 0x10
jae 0x180036a80
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
mov dword [rsp + 0x88], r11d
cmp r13d, 0x10
jb 0x180036a53
movzx ecx, r11b
mov eax, r11d
shr eax, 8
shl ecx, 8
add ecx, eax
mov eax, 0x8421085
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
cmp ecx, eax
jne 0x1800ae17b
mov eax, r11d
and al, 0xf
cmp al, 8
jne 0x1800ae1db
mov eax, dword [rdi + 0x28]
add r13d, 0xfffffffc
shr r11d, 4
mov ecx, r11d
mov dword [rsp + 0x88], r11d
and ecx, 0xf
add ecx, 8
test eax, eax
je 0x1800ae1f1
cmp ecx, eax
ja 0x1800ae1f9
mov eax, 1
xor r8d, r8d
shl eax, cl
xor edx, edx
xor ecx, ecx
mov dword [rdi + 0x14], eax
call fcn.18003784c
test dword [rsp + 0x88], 0x200
mov dword [rdi + 0x18], eax
mov dword [rbx + 0x4c], eax
jne 0x1800ae20f
mov eax, 0xb
mov r10d, dword [rsp + 0x80]
xor r8d, r8d
mov r11d, r8d
mov dword [rsp + 0x88], r8d
mov r13d, r8d
mov dword [rdi], eax
jmp 0x1800365d0
cmp dword [rdi + 8], 0
je 0x180036bf9
cmp r13d, 0x20
jae 0x180036b74
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
mov dword [rsp + 0x88], r11d
cmp r13d, 0x20
jb 0x180036b47
sub ebp, r10d
add dword [rbx + 0x1c], ebp
add dword [rdi + 0x1c], ebp
test ebp, ebp
je 0x180036bbe
mov ecx, dword [rdi + 0x18]
mov rdx, rsi
mov eax, ebp
mov r8d, ebp
sub rdx, rax
cmp dword [rdi + 0x10], 0
jne 0x1800ae39b
call fcn.18003784c
mov r10d, dword [rsp + 0x80]
lea r9, [0x180000000]
mov r11d, dword [rsp + 0x88]
xor r8d, r8d
mov dword [rdi + 0x18], eax
mov dword [rbx + 0x4c], eax
mov ecx, r11d
mov eax, r11d
shl eax, 0x10
and ecx, 0xff00
add ecx, eax
mov ebp, r10d
shl ecx, 8
mov eax, r11d
shr eax, 8
and eax, 0xff00
add ecx, eax
mov eax, r11d
shr eax, 0x18
add ecx, eax
cmp ecx, dword [rdi + 0x18]
jne 0x1800ae3a6
mov r11d, r8d
mov r13d, r8d
mov dword [rdi], 0x1c
mov dword [rsp + 0x90], 1
jmp 0x180036653
mov ecx, r13d
mov dword [rdi], 0x1a
and ecx, 7
shr r11d, cl
mov dword [rsp + 0x88], r11d
sub r13d, ecx
jmp 0x1800365d7
cmp r13d, 0xe
jae 0x180036c59
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, 0xe
jb 0x180036c34
mov ecx, r11d
add r13d, 0xfffffff2
shr r11d, 5
and ecx, 0x1f
mov edx, r11d
add ecx, 0x101
shr r11d, 5
and edx, 0x1f
mov eax, r11d
mov dword [rdi + 0x74], ecx
and eax, 0xf
shr r11d, 4
add eax, 4
mov dword [rsp + 0x88], r11d
inc edx
mov dword [rdi + 0x70], eax
mov dword [rdi + 0x78], edx
cmp ecx, 0x11e
ja 0x1800ae2fc
cmp edx, 0x1e
ja 0x1800ae2fc
mov dword [rdi + 0x7c], r8d
mov dword [rdi], 0x11
mov eax, dword [rdi + 0x7c]
cmp eax, dword [rdi + 0x70]
jae 0x180036d01
nop
cmp r13d, 3
jb 0x180036f24
mov eax, dword [rdi + 0x7c]
movzx ecx, r11w
and cx, 7
shr r11d, 3
add r13d, 0xfffffffd
mov dword [rsp + 0x88], r11d
movzx eax, word [r9 + rax*2 + 0x16dd40]
mov word [rdi + rax*2 + 0x88], cx
inc dword [rdi + 0x7c]
mov eax, dword [rdi + 0x7c]
cmp eax, dword [rdi + 0x70]
jb 0x180036cc0
cmp eax, 0x13
jae 0x180036d24
mov eax, dword [rdi + 0x7c]
movzx eax, word [r9 + rax*2 + 0x16dd40]
mov word [rdi + rax*2 + 0x88], r8w
inc dword [rdi + 0x7c]
cmp dword [rdi + 0x7c], 0x13
jb 0x180036d06
lea rcx, [rdi + 0x68]
lea rax, [rdi + 0x548]
mov dword [rcx], 7
lea r9, [rdi + 0x80]
mov qword [rdi + 0x58], rax
mov qword [r9], rax
lea rdx, [rdi + 0x88]
lea rax, [rdi + 0x308]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor ecx, ecx
lea r8d, [rcx + 0x13]
call fcn.180037fcc
mov dword [rsp + 0x90], eax
test eax, eax
jne 0x1800ae312
mov r10d, dword [rsp + 0x80]
lea edx, [rax + 0x12]
mov r11d, dword [rsp + 0x88]
mov dword [rdi + 0x7c], eax
mov dword [rdi], 0x12
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x180036e32
mov ecx, dword [rdi + 0x68]
mov r8d, 1
mov r9, qword [rdi + 0x58]
shl r8d, cl
dec r8d
mov eax, r11d
mov ecx, r8d
and rcx, rax
mov edx, dword [r9 + rcx*4]
mov ecx, edx
shr ecx, 8
mov dword [rsp + 0x98], edx
movzx eax, cl
shr edx, 0x10
cmp eax, r13d
ja 0x180036f50
mov eax, ecx
cmp dx, 0x10
jae 0x180036f99
movzx edx, cl
cmp r13d, edx
jb 0x1800ae34a
movzx ecx, byte [rsp + 0x99]
movzx eax, word [rsp + 0x9a]
sub r13d, ecx
shr r11d, cl
mov ecx, dword [rdi + 0x7c]
mov dword [rsp + 0x88], r11d
mov word [rdi + rcx*2 + 0x88], ax
inc dword [rdi + 0x7c]
mov ecx, dword [rdi + 0x7c]
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp ecx, eax
jb 0x180036da0
mov edx, dword [rdi]
lea r9, [0x180000000]
mov r8d, 0
cmp edx, 0x1d
je 0x1800365d7
cmp word [rdi + 0x288], r8w
je 0x1800ae37c
lea rax, [rdi + 0x548]
mov dword [rdi + 0x68], 9
lea r8, [rdi + 0x308]
mov qword [rdi + 0x80], rax
mov qword [rsp + 0x28], r8
lea rdx, [rdi + 0x88]
mov r8d, dword [rdi + 0x74]
lea r9, [rdi + 0x80]
mov qword [rdi + 0x58], rax
mov ecx, 1
lea rax, [rdi + 0x68]
mov qword [rsp + 0x20], rax
call fcn.180037fcc
mov dword [rsp + 0x90], eax
test eax, eax
jne 0x1800ae392
mov r8d, dword [rdi + 0x78]
lea rcx, [rdi + 0x6c]
lea r9, [rdi + 0x80]
mov dword [rcx], 6
mov rax, qword [r9]
mov qword [rdi + 0x60], rax
mov eax, dword [rdi + 0x74]
add rax, 0x44
lea rdx, [rdi + rax*2]
lea rax, [rdi + 0x308]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov ecx, 2
call fcn.180037fcc
mov dword [rsp + 0x90], eax
test eax, eax
jne 0x1800ae31b
mov r10d, dword [rsp + 0x80]
xor r8d, r8d
mov r11d, dword [rsp + 0x88]
mov dword [rdi], 0x13
mov dword [rdi], 0x14
jmp 0x1800365e3
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, 3
jae 0x180036cca
jmp 0x180036f24
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
mov ecx, r11d
add r13d, 8
mov eax, r8d
and rax, rcx
mov edx, dword [r9 + rax*4]
mov ecx, edx
shr ecx, 8
mov dword [rsp + 0x98], edx
movzx eax, cl
shr edx, 0x10
cmp eax, r13d
jbe 0x180036ddb
jmp 0x180036f50
movzx eax, al
cmp dx, 0x10
je 0x180037020
cmp dx, 0x11
jne 0x18003709a
lea edx, [rax + 3]
cmp r13d, edx
jb 0x180037070
movzx ecx, byte [rsp + 0x99]
mov eax, 0xfffffffd
shr r11d, cl
sub eax, ecx
mov r8d, r11d
add r13d, eax
and r8d, 7
shr r11d, 3
add r8d, 3
xor r9d, r9d
mov edx, dword [rdi + 0x78]
mov ecx, dword [rdi + 0x7c]
add edx, dword [rdi + 0x74]
add ecx, r8d
mov dword [rsp + 0x88], r11d
cmp ecx, edx
ja 0x1800ae373
nop dword [rax + rax]
mov eax, dword [rdi + 0x7c]
mov word [rdi + rax*2 + 0x88], r9w
mov ecx, dword [rdi + 0x7c]
lea ecx, [rcx + 1]
mov dword [rdi + 0x7c], ecx
add r8d, 0xffffffff
jne 0x180037000
jmp 0x180036e22
lea edx, [rax + 2]
cmp r13d, edx
jb 0x1800370f5
movzx ecx, byte [rsp + 0x99]
mov eax, dword [rdi + 0x7c]
sub r13d, ecx
shr r11d, cl
mov dword [rsp + 0x88], r11d
test eax, eax
je 0x1800ae373
mov r8d, r11d
add r13d, 0xfffffffe
and r8d, 3
shr r11d, 2
add r8d, 3
dec eax
movzx r9d, word [rdi + rax*2 + 0x88]
jmp 0x180036fdf
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, edx
jae 0x180036fb8
jmp 0x180037070
lea edx, [rax + 7]
cmp r13d, edx
jae 0x1800370c6
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, edx
jb 0x1800370a2
movzx ecx, byte [rsp + 0x99]
mov eax, 0xfffffff9
shr r11d, cl
sub eax, ecx
mov r8d, r11d
add r13d, eax
and r8d, 0x7f
shr r11d, 7
add r8d, 0xb
xor eax, eax
movzx r9d, ax
jmp 0x180036fdf
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, edx
jae 0x18003702c
jmp 0x1800370f5
test ebp, ebp
jne 0x1800366ea
jmp 0x1800ae422
lea rax, [0x180179ef0]
shr r11d, 2
mov qword [rdi + 0x58], rax
add r13d, 0xfffffffd
lea rax, [0x18017a6f0]
mov dword [rdi + 0x68], 9
mov qword [rdi + 0x60], rax
mov dword [rdi + 0x6c], 5
mov dword [rdi], 0x13
mov dword [rsp + 0x88], r11d
jmp 0x1800365d7
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, edx
jae 0x1800367d8
jmp 0x180037170
mov ecx, r13d
and ecx, 7
shr r11d, cl
sub r13d, ecx
mov dword [rsp + 0x88], r11d
cmp r13d, 0x20
jae 0x1800371e1
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
mov dword [rsp + 0x88], r11d
cmp r13d, 0x20
jb 0x1800371b4
mov eax, r11d
movzx ecx, r11w
not eax
shr eax, 0x10
cmp ecx, eax
jne 0x1800ae2e6
mov dword [rdi + 0x48], ecx
mov r11d, r8d
mov dword [rsp + 0x88], r8d
mov r13d, r8d
mov dword [rdi], 0xe
mov dword [rdi], 0xf
mov ecx, dword [rdi + 0x48]
test ecx, ecx
je 0x180037305
cmp ecx, r12d
mov eax, r12d
cmovbe eax, ecx
mov ecx, r10d
cmp eax, r10d
cmovbe ecx, eax
mov dword [rsp + 0x98], ecx
test ecx, ecx
je 0x180036653
mov r8d, ecx
mov rdx, r15
mov rcx, rsi
call sub.msvcrt.dll_memcpy
mov ecx, dword [rsp + 0x98]
mov r10d, dword [rsp + 0x80]
sub r12d, ecx
sub dword [rdi + 0x48], ecx
add r15, rcx
mov r11d, dword [rsp + 0x88]
sub r10d, ecx
add rsi, rcx
xor r8d, r8d
jmp 0x1800365c8
mov dword [rdi + 0x1bdc], 0xffffffff
xor r8d, r8d
jmp 0x1800365d0
mov ecx, eax
mov dword [rsp + 0x88], eax
shr ecx, 8
mov r8d, 1
movzx r9d, cl
mov edx, eax
movzx ecx, al
add ecx, r9d
shr eax, 0x10
shl r8d, cl
mov ecx, r9d
dec r8d
and r8d, r11d
shr r8d, cl
mov rcx, qword [rdi + 0x58]
add r8d, eax
mov eax, dword [rcx + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
movzx r9d, byte [rsp + 0x89]
cmp r8d, r13d
ja 0x180037380
movzx ecx, r9b
shr r11d, cl
sub r13d, ecx
mov dword [rdi + 0x1bdc], ecx
jmp 0x18003677d
mov dword [rdi], 0xd
jmp 0x1800369b0
mov dword [rdi], 0xb
jmp 0x1800365d7
mov ecx, eax
mov dword [rsp + 0x88], eax
shr ecx, 8
mov r8d, 1
movzx r9d, cl
mov edx, eax
movzx ecx, al
add ecx, r9d
shr eax, 0x10
shl r8d, cl
mov ecx, r9d
dec r8d
and r8d, r11d
shr r8d, cl
mov rcx, qword [rdi + 0x60]
add r8d, eax
mov eax, dword [rcx + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
movzx r9d, byte [rsp + 0x89]
cmp r8d, r13d
ja 0x1800373f1
movzx ecx, r9b
shr r11d, cl
sub r13d, ecx
add dword [rdi + 0x1bdc], ecx
jmp 0x180036839
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
mov r8d, 1
movzx r9d, r9b
add r11d, eax
movzx eax, word [rsp + 0x8a]
dec r12d
movzx ecx, dl
inc r15
add ecx, r9d
add r13d, 8
shl r8d, cl
mov ecx, r9d
dec r8d
and r8d, r11d
shr r8d, cl
mov rcx, qword [rdi + 0x58]
add r8d, eax
mov eax, dword [rcx + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
movzx r9d, byte [rsp + 0x89]
cmp r8d, r13d
jbe 0x1800372e5
jmp 0x180037380
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
mov r8d, 1
movzx r9d, r9b
add r11d, eax
movzx eax, word [rsp + 0x8a]
dec r12d
movzx ecx, dl
inc r15
add ecx, r9d
add r13d, 8
shl r8d, cl
mov ecx, r9d
dec r8d
and r8d, r11d
shr r8d, cl
mov rcx, qword [rdi + 0x60]
add r8d, eax
mov eax, dword [rcx + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
movzx r9d, byte [rsp + 0x89]
cmp r8d, r13d
jbe 0x180037369
jmp 0x1800373f1
cmp dword [rcx + 8], 0
je 0x180036596
mov eax, 0xfffffffe
jmp 0x1800366ea
mov dword [rdi], 0xc
mov rsi, qword [rcx + 0x10]
mov r15, qword [rcx]
jmp 0x18003659f
mov dword [rdi], 0xc
jmp 0x1800365d7
cmp dword [rdi + 0x1be4], 1
jne 0x1800ae1c4
mov ecx, dword [rdi + 0x28]
mov eax, 1
shl eax, cl
xor r8d, r8d
xor ecx, ecx
mov dword [rdi + 0x14], eax
xor edx, edx
call fcn.18003784c
mov r10d, dword [rsp + 0x80]
lea r9, [0x180000000]
mov r11d, dword [rsp + 0x88]
xor r8d, r8d
mov dword [rdi + 0x18], eax
mov dword [rbx + 0x4c], eax
mov eax, 0xb
jmp 0x1800ae1d4
lea rax, str.incorrect_header_check
mov qword [rbx + 0x20], rax
mov eax, 0x1d
mov dword [rdi], eax
jmp 0x1800365d7
lea rax, str.unknown_compression_method
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800365d7
mov dword [rdi + 0x28], ecx
jmp 0x180036ae5
lea rax, str.invalid_window_size
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800365d7
mov eax, 9
jmp 0x180036b17
cmp r13d, 0x20
jae 0x1800ae244
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, 0x20
jb 0x1800ae21f
mov ecx, r11d
mov dword [rsp + 0x88], r8d
mov eax, r11d
and ecx, 0xff00
shl eax, 0x10
mov r13d, r8d
add ecx, eax
mov eax, r11d
shr eax, 8
and eax, 0xff00
shl ecx, 8
shr r11d, 0x18
add eax, ecx
add eax, r11d
mov r11d, r8d
mov dword [rdi + 0x18], eax
mov dword [rbx + 0x4c], eax
mov dword [rdi], 0xa
cmp dword [rdi + 0xc], 0
je 0x1800ae3c8
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18003784c
mov r10d, dword [rsp + 0x80]
lea r9, [0x180000000]
mov r11d, dword [rsp + 0x88]
xor r8d, r8d
mov dword [rdi + 0x18], eax
mov dword [rbx + 0x4c], eax
mov dword [rdi], 0xb
jmp case.0x180036949.11
cmp eax, 1
jne 0x1800369b0
lea rax, str.invalid_block_type
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800369b0
lea rax, str.invalid_stored_block_lengths
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800365d7
lea rax, str.too_many_length_or_distance_symbols
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800365d7
lea rax, str.invalid_code_lengths_set
jmp 0x1800ae322
lea rax, str.invalid_distances_set
mov r10d, dword [rsp + 0x80]
mov r11d, dword [rsp + 0x88]
jmp 0x1800ae33b
lea rax, str.invalid_distance_code
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x180036701
test r12d, r12d
je 0x180036653
movzx eax, byte [r15]
mov ecx, r13d
shl eax, cl
dec r12d
add r11d, eax
inc r15
add r13d, 8
cmp r13d, edx
jb 0x1800ae34a
jmp 0x180036df3
lea rax, str.invalid_bit_length_repeat
jmp 0x1800ae33b
lea rax, str.invalid_code____missing_end_of_block
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800365d0
lea rax, str.invalid_literal_lengths_set
jmp 0x1800ae322
call fcn.18004a8b0
nop
jmp 0x180036b9e
lea rax, str.incorrect_data_check
mov qword [rbx + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1800365d7
lea rax, str.invalid_literal_length_code
jmp 0x1800ae33b
mov qword [rbx + 0x10], rsi
mov eax, 2
mov dword [rbx + 0x18], r10d
mov qword [rbx], r15
mov dword [rbx + 8], r12d
mov dword [rdi + 0x40], r11d
mov dword [rdi + 0x44], r13d
jmp 0x1800366ea
mov dword [rsp + 0x90], 0xfffffffd
jmp 0x180036653
mov eax, 0xfffffffc
jmp 0x1800366ea
call fcn.18004a8b0
nop
jmp 0x1800366a3
mov eax, 0x80
jmp 0x1800366d2
mov eax, 0x100
jmp 0x1800366d2
test eax, eax
mov ecx, 0xfffffffb
cmove eax, ecx
jmp 0x1800366ea