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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
xor esi, esi
mov ebp, edx
mov rdi, rcx
test rcx, rcx
je 0x140032dd7
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x140032dd7
cmp edx, 4
ja 0x140032dd7
cmp qword [rcx + 0x10], rsi
je 0x140032dcc
cmp qword [rcx], rsi
jne 0x140032556
cmp dword [rcx + 8], esi
jne 0x140032dcc
cmp dword [rbx + 8], 0x29a
jne 0x140032568
cmp ebp, 4
jne 0x140032dcc
cmp dword [rcx + 0x18], esi
jne 0x140032582
mov rax, qword [0x14005d5e8]
mov qword [rcx + 0x20], rax
mov eax, 0xfffffffb
jmp 0x140032ddc
cmp dword [rbx + 8], 0x2a
mov r14d, 2
mov r15d, dword [rbx + 0x40]
mov qword [rbx], rdi
mov dword [rbx + 0x40], ebp
lea r12d, [r14 - 1]
lea r13d, [r14 + 0x6f]
jne 0x1400328d5
cmp dword [rbx + 0x2c], r14d
jne 0x1400327d1
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14003382c
mov dword [rdi + 0x4c], eax
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], 0x1f
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], 0x8b
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], 8
add dword [rbx + 0x28], r12d
mov r8, qword [rbx + 0x30]
mov r9d, dword [rbx + 0x28]
test r8, r8
jne 0x14003268c
mov rax, qword [rbx + 0x10]
mov byte [r9 + rax], sil
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], sil
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], sil
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], sil
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], sil
mov ecx, dword [rbx + 0x28]
mov eax, dword [rbx + 0xac]
inc ecx
mov dword [rbx + 0x28], ecx
cmp eax, 9
jne 0x140032657
mov dl, r14b
jmp 0x14003266a
cmp dword [rbx + 0xb0], r14d
jge 0x140032668
mov dl, sil
cmp eax, r14d
jge 0x14003266a
mov dl, 4
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], dl
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], 0xb
mov eax, r13d
add dword [rbx + 0x28], r12d
jmp 0x1400327c9
mov rax, qword [r8 + 0x30]
neg rax
mov eax, dword [r8 + 0x3c]
sbb dl, dl
and dl, 0x10
neg eax
mov rax, qword [r8 + 0x20]
sbb cl, cl
and cl, r14b
add dl, cl
neg rax
mov rax, qword [r8 + 0x10]
sbb cl, cl
and cl, 8
add dl, cl
neg rax
sbb cl, cl
and cl, 4
add dl, cl
cmp dword [r8], esi
setne al
add dl, al
mov rax, qword [rbx + 0x10]
mov byte [r9 + rax], dl
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x10]
mov al, byte [rax + 4]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x10]
mov al, byte [rax + 5]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x10]
mov al, byte [rax + 6]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov rax, qword [rbx + 0x30]
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
mov al, byte [rax + 7]
mov byte [rdx + rcx], al
mov ecx, dword [rbx + 0x28]
mov eax, dword [rbx + 0xac]
inc ecx
mov dword [rbx + 0x28], ecx
cmp eax, 9
jne 0x14003273d
mov dl, r14b
jmp 0x140032750
cmp dword [rbx + 0xb0], r14d
jge 0x14003274e
mov dl, sil
cmp eax, r14d
jge 0x140032750
mov dl, 4
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], dl
add dword [rbx + 0x28], r12d
mov rax, qword [rbx + 0x30]
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
mov al, byte [rax + 0xc]
mov byte [rdx + rcx], al
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
inc ecx
mov dword [rbx + 0x28], ecx
cmp qword [rax + 0x10], rsi
je 0x1400327aa
mov al, byte [rax + 0x18]
mov edx, ecx
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov rax, qword [rbx + 0x30]
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
mov al, byte [rax + 0x19]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x3c], esi
je 0x1400327c1
mov rdx, qword [rbx + 0x10]
mov r8d, ecx
mov ecx, dword [rdi + 0x4c]
call fcn.14003382c
mov dword [rdi + 0x4c], eax
mov dword [rbx + 0x38], esi
mov eax, 0x45
mov dword [rbx + 8], eax
jmp 0x1400328d5
mov ecx, dword [rbx + 0x48]
shl ecx, 0xc
sub ecx, 0x7800
mov r8d, ecx
cmp dword [rbx + 0xb0], r14d
jge 0x140032819
mov eax, dword [rbx + 0xac]
cmp eax, r14d
jl 0x140032819
cmp eax, 6
jge 0x140032803
mov eax, 0x40
lea edx, [rax + 0x20]
jmp 0x140032820
jne 0x14003280f
mov eax, 0x80
lea edx, [rax + 0x20]
jmp 0x140032820
mov eax, 0xc0
lea edx, [rax + 0x20]
jmp 0x140032820
mov eax, esi
mov edx, 0x20
or ecx, eax
cmp dword [rbx + 0x94], esi
je 0x14003282f
mov ecx, r8d
or ecx, edx
mov eax, 0x8421085
mov dword [rbx + 8], r13d
mul ecx
mov rax, qword [rbx + 0x10]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
add ecx, r12d
imul r8d, ecx, 0x1f
mov ecx, dword [rbx + 0x28]
mov edx, r8d
shr edx, 8
mov byte [rcx + rax], dl
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], r8b
mov ecx, dword [rbx + 0x28]
inc ecx
mov dword [rbx + 0x28], ecx
cmp dword [rbx + 0x94], esi
je 0x1400328c6
movzx r8d, word [rdi + 0x4e]
mov rax, qword [rbx + 0x10]
mov edx, r8d
shr edx, 8
mov byte [rcx + rax], dl
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], r8b
add dword [rbx + 0x28], r12d
movzx r8d, word [rdi + 0x4c]
mov edx, dword [rbx + 0x28]
mov ecx, r8d
mov rax, qword [rbx + 0x10]
shr ecx, 8
mov byte [rdx + rax], cl
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], r8b
add dword [rbx + 0x28], r12d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14003321c
mov dword [rdi + 0x4c], eax
mov eax, dword [rbx + 8]
mov r14d, 0x49
cmp eax, 0x45
jne 0x1400329ae
mov rdx, qword [rbx + 0x30]
cmp qword [rdx + 0x10], rsi
je 0x1400329a7
mov r10d, dword [rbx + 0x28]
mov ecx, r10d
jmp 0x140032965
cmp ecx, dword [rbx + 0x18]
jne 0x14003293a
cmp dword [rdx + 0x3c], esi
je 0x140032925
cmp ecx, r10d
jbe 0x140032925
sub ecx, r10d
mov edx, r10d
add rdx, qword [rbx + 0x10]
mov r8d, ecx
mov ecx, dword [rdi + 0x4c]
call fcn.14003382c
mov dword [rdi + 0x4c], eax
mov rcx, rdi
call fcn.140032164
mov r10d, dword [rbx + 0x28]
mov ecx, r10d
cmp r10d, dword [rbx + 0x18]
je 0x14003296e
mov rax, qword [rbx + 0x30]
mov r9d, dword [rbx + 0x38]
mov r8d, ecx
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rax + 0x10]
mov al, byte [r9 + rdx]
mov byte [r8 + rcx], al
mov ecx, dword [rbx + 0x28]
inc ecx
add dword [rbx + 0x38], r12d
mov dword [rbx + 0x28], ecx
mov rdx, qword [rbx + 0x30]
movzx eax, word [rdx + 0x18]
cmp dword [rbx + 0x38], eax
jb 0x1400328fe
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x3c], esi
je 0x140032998
cmp ecx, r10d
jbe 0x140032998
sub ecx, r10d
mov edx, r10d
add rdx, qword [rbx + 0x10]
mov r8d, ecx
mov ecx, dword [rdi + 0x4c]
call fcn.14003382c
mov dword [rdi + 0x4c], eax
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x18]
cmp dword [rbx + 0x38], eax
jne 0x140032a3d
mov dword [rbx + 0x38], esi
mov eax, r14d
mov dword [rbx + 8], r14d
mov r13d, 0x5b
cmp eax, r14d
jne 0x140032a7b
mov rax, qword [rbx + 0x30]
cmp qword [rax + 0x20], rsi
je 0x140032a74
mov edx, dword [rbx + 0x28]
mov r8d, edx
cmp r8d, dword [rbx + 0x18]
jne 0x140032a0a
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x3c], esi
je 0x1400329f7
cmp r8d, edx
jbe 0x1400329f7
mov ecx, dword [rdi + 0x4c]
sub r8d, edx
add rdx, qword [rbx + 0x10]
call fcn.14003382c
mov dword [rdi + 0x4c], eax
mov rcx, rdi
call fcn.140032164
mov edx, dword [rbx + 0x28]
mov r8d, edx
cmp edx, dword [rbx + 0x18]
je 0x140032a45
mov ecx, dword [rbx + 0x38]
mov rax, qword [rbx + 0x30]
mov rax, qword [rax + 0x20]
movzx r14d, byte [rcx + rax]
lea eax, [rcx + 1]
mov ecx, r8d
mov dword [rbx + 0x38], eax
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], r14b
mov r8d, dword [rbx + 0x28]
inc r8d
mov dword [rbx + 0x28], r8d
test r14d, r14d
je 0x140032a48
jmp 0x1400329d1
mov eax, dword [rbx + 8]
jmp 0x1400329ae
mov r14d, r12d
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x3c], esi
je 0x140032a68
cmp r8d, edx
jbe 0x140032a68
mov ecx, dword [rdi + 0x4c]
sub r8d, edx
add rdx, qword [rbx + 0x10]
call fcn.14003382c
mov dword [rdi + 0x4c], eax
test r14d, r14d
jne 0x140032b0a
mov dword [rbx + 0x38], esi
mov eax, r13d
mov dword [rbx + 8], r13d
mov r13d, 0x67
cmp eax, 0x5b
jne 0x140032b46
mov rax, qword [rbx + 0x30]
cmp qword [rax + 0x30], rsi
je 0x140032b3f
mov edx, dword [rbx + 0x28]
mov r8d, edx
cmp r8d, dword [rbx + 0x18]
jne 0x140032ad7
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x3c], esi
je 0x140032ac4
cmp r8d, edx
jbe 0x140032ac4
mov ecx, dword [rdi + 0x4c]
sub r8d, edx
add rdx, qword [rbx + 0x10]
call fcn.14003382c
mov dword [rdi + 0x4c], eax
mov rcx, rdi
call fcn.140032164
mov edx, dword [rbx + 0x28]
mov r8d, edx
cmp edx, dword [rbx + 0x18]
je 0x140032b12
mov ecx, dword [rbx + 0x38]
mov rax, qword [rbx + 0x30]
mov rax, qword [rax + 0x30]
movzx r14d, byte [rcx + rax]
lea eax, [rcx + 1]
mov ecx, r8d
mov dword [rbx + 0x38], eax
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], r14b
mov r8d, dword [rbx + 0x28]
inc r8d
mov dword [rbx + 0x28], r8d
test r14d, r14d
je 0x140032b15
jmp 0x140032a9e
mov eax, dword [rbx + 8]
jmp 0x140032a7b
mov r14d, r12d
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x3c], esi
je 0x140032b35
cmp r8d, edx
jbe 0x140032b35
mov ecx, dword [rdi + 0x4c]
sub r8d, edx
add rdx, qword [rbx + 0x10]
call fcn.14003382c
mov dword [rdi + 0x4c], eax
test r14d, r14d
je 0x140032b3f
mov eax, dword [rbx + 8]
jmp 0x140032b46
mov eax, r13d
mov dword [rbx + 8], r13d
cmp eax, r13d
jne 0x140032bad
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x3c], esi
je 0x140032ba6
mov ecx, dword [rbx + 0x28]
mov edx, dword [rbx + 0x18]
lea eax, [rcx + 2]
cmp eax, edx
jbe 0x140032b6f
mov rcx, rdi
call fcn.140032164
mov ecx, dword [rbx + 0x28]
mov edx, dword [rbx + 0x18]
lea eax, [rcx + 2]
cmp eax, edx
ja 0x140032bad
mov al, byte [rdi + 0x4c]
xor r8d, r8d
mov edx, ecx
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
mov al, byte [rdi + 0x4d]
mov byte [rdx + rcx], al
xor edx, edx
add dword [rbx + 0x28], r12d
xor ecx, ecx
call fcn.14003382c
mov dword [rdi + 0x4c], eax
mov dword [rbx + 8], 0x71
cmp dword [rbx + 0x28], esi
je 0x140032bca
mov rcx, rdi
call fcn.140032164
cmp dword [rdi + 0x18], esi
jne 0x140032be9
or dword [rbx + 0x40], 0xffffffff
xor eax, eax
jmp 0x140032ddc
cmp dword [rdi + 8], esi
jne 0x140032be9
cmp ebp, r15d
jg 0x140032be9
cmp ebp, 4
je 0x140032be9
mov rax, qword [0x14005d5e8]
mov qword [rdi + 0x20], rax
jmp 0x140032578
mov r14d, 0x29a
cmp dword [rbx + 8], r14d
jne 0x140032bfc
cmp dword [rdi + 8], esi
je 0x140032c01
jmp 0x140032bd9
cmp dword [rdi + 8], esi
jne 0x140032c1b
cmp dword [rbx + 0x9c], esi
jne 0x140032c1b
test ebp, ebp
je 0x140032ca9
cmp dword [rbx + 8], r14d
je 0x140032ca9
movsxd rax, dword [rbx + 0xac]
lea r8, [0x14005b518]
add rax, rax
mov edx, ebp
mov rcx, rbx
call qword [r8 + rax*8]
mov ecx, eax
add eax, 0xfffffffe
cmp eax, r12d
ja 0x140032c43
mov dword [rbx + 8], r14d
test ecx, 0xfffffffd
je 0x140032dbe
cmp ecx, r12d
jne 0x140032ca9
mov rcx, rbx
cmp ebp, r12d
jne 0x140032c63
call fcn.140034bfc
jmp 0x140032c98
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call fcn.140035160
cmp ebp, 3
jne 0x140032c98
mov ecx, dword [rbx + 0x74]
xor edx, edx
mov rax, qword [rbx + 0x68]
sub ecx, r12d
mov word [rax + rcx*2], si
mov r8d, dword [rbx + 0x74]
mov rcx, qword [rbx + 0x68]
sub r8d, r12d
add r8, r8
call fcn.140038450
mov rcx, rdi
call fcn.140032164
cmp dword [rdi + 0x18], esi
je 0x140032bbf
cmp ebp, 4
jne 0x140032bc3
cmp dword [rbx + 0x2c], esi
jg 0x140032cbf
mov eax, r12d
jmp 0x140032ddc
cmp dword [rbx + 0x2c], 2
jne 0x140032d4f
mov edx, dword [rbx + 0x28]
mov al, byte [rdi + 0x4c]
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov al, byte [rdi + 0x4d]
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov al, byte [rdi + 0x4e]
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov al, byte [rdi + 0x4f]
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov al, byte [rdi + 0xc]
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov al, byte [rdi + 0xd]
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov al, byte [rdi + 0xe]
mov rcx, qword [rbx + 0x10]
mov byte [rdx + rcx], al
add dword [rbx + 0x28], r12d
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
mov al, byte [rdi + 0xf]
mov byte [rdx + rcx], al
jmp 0x140032d9b
movzx r8d, word [rdi + 0x4e]
mov ecx, dword [rbx + 0x28]
mov edx, r8d
mov rax, qword [rbx + 0x10]
shr edx, 8
mov byte [rcx + rax], dl
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], r8b
add dword [rbx + 0x28], r12d
movzx r8d, word [rdi + 0x4c]
mov edx, dword [rbx + 0x28]
mov ecx, r8d
mov rax, qword [rbx + 0x10]
shr ecx, 8
mov byte [rdx + rax], cl
add dword [rbx + 0x28], r12d
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov byte [rcx + rax], r8b
add dword [rbx + 0x28], r12d
mov rcx, rdi
call fcn.140032164
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x140032db3
neg eax
mov dword [rbx + 0x2c], eax
cmp dword [rbx + 0x28], esi
sete sil
mov eax, esi
jmp 0x140032ddc
cmp dword [rdi + 0x18], esi
jne 0x140032bc3
jmp 0x140032bbf
mov rax, qword [0x14005d5d0]
mov qword [rcx + 0x20], rax
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret