Function at 0x22daf6650
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rsi, rcx
test edx, edx
jne 0x22daf797e
mov qword [rsi + 0x10], 0
xor edx, edx
xor ecx, ecx
nop word [rax + rax]
test ecx, ecx
jle 0x22daf6b60
mov ebp, edx
sub ecx, 1
shr edx, 1
mov dword [rsi + 0x14], edx
and ebp, 1
mov dword [rsi + 0x10], ecx
cmp ecx, 1
jle 0x22daf6bb0
mov r8d, edx
lea eax, [rcx - 2]
shr r8d, 2
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x14], r8d
and edx, 3
je 0x22daf6910
cmp edx, 3
je 0x22daf79a4
cmp edx, 1
je 0x22daf6c00
mov rcx, rsi
call fcn.22daf5ad0
test eax, eax
je 0x22daf79a4
lea rbx, [rsi + 0x34]
mov r13, qword [rsi + 0x18]
lea r12, [0x22dd77540]
mov rdx, rbx
mov rcx, rsi
call fcn.22daeef20
mov edi, eax
cmp eax, 0xff
jg 0x22daf6748
test eax, eax
js 0x22daf7960
cmp qword [rsi + 0x28], r13
ja 0x22daf673a
mov eax, dword [rsi + 0x30]
mov qword [rsi + 0x18], r13
test eax, eax
je 0x22daf6a58
mov r8d, 1
mov rdx, r13
mov rcx, rsi
call fcn.22db19990
test eax, eax
je 0x22daf79a4
mov r13, qword [rsi + 0x18]
mov byte [r13], dil
add r13, 1
jmp 0x22daf66ec
cmp eax, 0x100
je 0x22daf7bf8
sub edi, 0x101
lea rax, [0x22dd77640]
movsxd rdi, edi
mov r14d, dword [rax + rdi*4]
lea rax, [0x22dd775c0]
mov r8d, dword [rax + rdi*4]
test r8d, r8d
jne 0x22daf6a90
lea rdx, [rsi + 0x818]
mov rcx, rsi
call fcn.22daeef20
test eax, eax
js 0x22daf7960
cdqe
lea rdx, [0x22dd774c0]
mov r8d, dword [rdx + rax*4]
mov edi, dword [r12 + rax*4]
test r8d, r8d
jne 0x22daf6ac8
mov rax, r13
movsxd r15, edi
sub rax, qword [rsi + 0x20]
cmp rax, r15
jl 0x22daf6b0b
movsxd rax, r14d
add rax, r13
cmp qword [rsi + 0x28], rax
jae 0x22daf67f4
mov eax, dword [rsi + 0x30]
mov qword [rsi + 0x18], r13
test eax, eax
je 0x22daf6a58
mov r8d, r14d
mov rdx, r13
mov rcx, rsi
call fcn.22db19990
test eax, eax
je 0x22daf79a4
mov r13, qword [rsi + 0x18]
mov rdx, r13
sub rdx, r15
cmp edi, 1
je 0x22daf6b30
test r14d, r14d
je 0x22daf66ec
lea rax, [r15 - 1]
lea r8d, [r14 - 1]
cmp rax, 0xe
jbe 0x22daf7ab0
cmp r8d, 6
jbe 0x22daf7ab0
mov r9d, r14d
cmp r8d, 0xe
jbe 0x22daf7c16
mov ecx, r14d
xor eax, eax
shr ecx, 4
shl rcx, 4
nop dword [rax]
movdqu xmm0, xmmword [rdx + rax]
movups xmmword [r13 + rax], xmm0
add rax, 0x10
cmp rcx, rax
jne 0x22daf6848
mov eax, r14d
and eax, 0xfffffff0
mov r10d, eax
sub r14d, eax
lea rcx, [r13 + r10]
add rdx, r10
cmp eax, r9d
je 0x22daf6900
sub r9d, eax
lea r10d, [r9 - 1]
cmp r10d, 6
jbe 0x22daf68ad
mov r10, rax
sub r10, r15
mov r10, qword [r13 + r10]
mov qword [r13 + rax], r10
mov eax, r9d
and eax, 0xfffffff8
mov r10d, eax
sub r14d, eax
add rcx, r10
add rdx, r10
cmp eax, r9d
je 0x22daf6900
movzx eax, byte [rdx]
mov byte [rcx], al
cmp r14d, 1
je 0x22daf6900
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
cmp r14d, 2
je 0x22daf6900
movzx eax, byte [rdx + 2]
mov byte [rcx + 2], al
cmp r14d, 3
je 0x22daf6900
movzx eax, byte [rdx + 3]
mov byte [rcx + 3], al
cmp r14d, 4
je 0x22daf6900
movzx eax, byte [rdx + 4]
mov byte [rcx + 4], al
cmp r14d, 5
je 0x22daf6900
movzx eax, byte [rdx + 5]
mov byte [rcx + 5], al
cmp r14d, 6
je 0x22daf6900
movzx eax, byte [rdx + 6]
mov byte [rcx + 6], al
lea r13, [r13 + r8 + 1]
jmp 0x22daf66ec
mov r9d, eax
and r9d, 7
jne 0x22daf7898
test eax, eax
jle 0x22daf78b9
mov ecx, r8d
lea r9d, [rax - 8]
mov byte [rsp + 0x80], r8b
shr ecx, 8
test r9d, r9d
jle 0x22daf7a50
mov byte [rsp + 0x81], cl
mov r10d, r8d
lea ecx, [rax - 0x10]
shr r10d, 0x10
test ecx, ecx
jle 0x22daf7aa0
mov byte [rsp + 0x82], r10b
shr r8d, 0x18
cmp eax, 0x18
jle 0x22daf7bf0
mov byte [rsp + 0x83], r8b
lea ecx, [rax - 1]
mov r10d, 1
mov dword [rsi + 0x14], edx
shr ecx, 3
test eax, eax
lea r8d, [rcx + 1]
cmovle r8d, r10d
neg ecx
shl ecx, 3
test eax, eax
mov eax, 0
cmovg eax, ecx
movsxd r10, r8d
add eax, r9d
mov dword [rsi + 0x10], eax
jne 0x22daf77a8
cmp r8d, 4
je 0x22daf69e5
mov rdx, qword [rsi + 8]
mov rcx, qword [rsi]
lea eax, [r8 + 1]
cmp rdx, rcx
jbe 0x22daf7908
lea r9, [rcx + 1]
movsxd r8, r8d
mov qword [rsi], r9
movzx ecx, byte [rcx]
mov byte [rsp + r8 + 0x80], cl
cmp eax, 4
jne 0x22daf7acf
movzx eax, byte [rsp + 0x80]
movzx edx, byte [rsp + 0x82]
movzx r8d, byte [rsp + 0x81]
shl r8d, 8
add r8d, eax
movzx eax, byte [rsp + 0x83]
shl eax, 8
add eax, edx
mov edx, r8d
xor edx, 0xffff
cmp eax, edx
jne 0x22daf77a8
mov rdx, qword [rsi]
movsxd rbx, r8d
lea rax, [rdx + rbx]
cmp qword [rsi + 8], rax
jb 0x22daf7b78
mov rcx, qword [rsi + 0x18]
lea rax, [rcx + rbx]
cmp qword [rsi + 0x28], rax
jae 0x22daf7a7a
mov eax, dword [rsi + 0x30]
test eax, eax
jne 0x22daf7a60
nop dword [rax]
lea rcx, [0x22dd0c480]
mov r15d, eax
lea rbx, str.output_buffer_limit
call fcn.22dcfcd40
mov qword [rax], rbx
mov eax, r15d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsi + 0x10]
mov edx, dword [rsi + 0x14]
cmp r8d, eax
jg 0x22daf77f0
sub eax, r8d
mov ecx, r8d
mov edi, edx
mov dword [rsi + 0x10], eax
mov eax, 1
shr edi, cl
shl eax, cl
mov dword [rsi + 0x14], edi
sub eax, 1
and eax, edx
add r14d, eax
jmp 0x22daf677b
mov eax, dword [rsi + 0x10]
mov edx, dword [rsi + 0x14]
cmp r8d, eax
jg 0x22daf7840
sub eax, r8d
mov ecx, r8d
mov r11d, edx
mov dword [rsi + 0x10], eax
mov eax, 1
shr r11d, cl
shl eax, cl
mov dword [rsi + 0x14], r11d
sub eax, 1
and eax, edx
add edi, eax
mov rax, r13
sub rax, qword [rsi + 0x20]
movsxd r15, edi
cmp rax, r15
jge 0x22daf67bf
lea rcx, [0x22dd0c480]
lea rbx, str.bad_dist
xor r15d, r15d
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71
test r14d, r14d
je 0x22daf66ec
lea edi, [r14 - 1]
movsx edx, byte [rdx]
mov rcx, r13
add rdi, 1
mov r8, rdi
add r13, rdi
call sub.msvcrt.dll_memset
jmp 0x22daf66ec
mov r8, qword [rsi + 8]
jmp 0x22daf6b98
mov rax, qword [rsi]
cmp rax, r8
jae 0x22daf6b86
lea r9, [rax + 1]
mov qword [rsi], r9
movzx eax, byte [rax]
shl eax, cl
or edx, eax
add ecx, 8
mov dword [rsi + 0x14], edx
mov dword [rsi + 0x10], ecx
cmp ecx, 0x18
jg 0x22daf6688
mov eax, edx
shr eax, cl
test eax, eax
je 0x22daf6b70
mov qword [rsi], r8
jmp 0x22daf6688
mov r8, qword [rsi + 8]
jmp 0x22daf6be8
mov rax, qword [rsi]
cmp rax, r8
jae 0x22daf6bd6
lea r9, [rax + 1]
mov qword [rsi], r9
movzx eax, byte [rax]
shl eax, cl
or edx, eax
add ecx, 8
mov dword [rsi + 0x14], edx
mov dword [rsi + 0x10], ecx
cmp ecx, 0x18
jg 0x22daf66a1
mov eax, edx
shr eax, cl
test eax, eax
je 0x22daf6bc0
mov qword [rsi], r8
jmp 0x22daf66a1
lea rbx, [rsi + 0x34]
lea rdi, [rsi + 0x3c]
xor eax, eax
mov qword [rsp + 0xa0], 0
and rdi, 0xfffffffffffffff8
mov rcx, rbx
mov qword [rsp + 0x80], 0
sub rcx, rdi
mov qword [rsp + 0x88], 0
add ecx, 0x400
mov qword [rsp + 0x90], 0
shr ecx, 3
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov dword [rsp + 0xc0], 0
mov qword [rsi + 0x34], 0
mov qword [rsi + 0x42c], 0
rep stosq qword [rdi], rax
lea rax, [0x22dd776e1]
mov dword [rsp + 0xa0], 1
lea rcx, [rax + 0x11f]
nop word [rax + rax]
movzx edx, byte [rax]
add rax, 1
add dword [rsp + rdx*4 + 0x80], 1
cmp rcx, rax
jne 0x22daf6cc0
mov ecx, dword [rsp + 0x84]
mov dword [rsp + 0x80], 0
cmp ecx, 2
jg 0x22daf77d0
mov edx, dword [rsp + 0x88]
cmp edx, 4
jg 0x22daf77d0
mov r8d, dword [rsp + 0x8c]
cmp r8d, 8
jg 0x22daf77d0
mov r11d, dword [rsp + 0x90]
cmp r11d, 0x10
jg 0x22daf77d0
mov r9d, dword [rsp + 0x94]
cmp r9d, 0x20
jg 0x22daf77d0
mov r10d, dword [rsp + 0x98]
cmp r10d, 0x40
jg 0x22daf77d0
mov edi, dword [rsp + 0x9c]
cmp edi, 0x80
jg 0x22daf77d0
mov r13d, dword [rsp + 0xa0]
cmp r13d, 0x100
jg 0x22daf77d0
mov r12d, dword [rsp + 0xa4]
cmp r12d, 0x200
jg 0x22daf77d0
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x2c], eax
cmp eax, 0x400
jg 0x22daf77d0
mov r14d, dword [rsp + 0xac]
cmp r14d, 0x800
jg 0x22daf77d0
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x30], eax
cmp eax, 0x1000
jg 0x22daf77d0
mov eax, dword [rsp + 0xb4]
mov dword [rsp + 0x34], eax
cmp eax, 0x2000
jg 0x22daf77d0
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x38], eax
cmp eax, 0x4000
jg 0x22daf77d0
mov eax, dword [rsp + 0xbc]
mov dword [rsp + 0x3c], eax
cmp eax, 0x8000
jg 0x22daf77d0
xor eax, eax
mov dword [rsp + 0x44], 0
mov word [rsi + 0x436], ax
xor eax, eax
mov word [rsi + 0x49a], ax
mov eax, ecx
shl eax, 0xf
mov word [rsi + 0x49c], cx
mov dword [rsi + 0x458], eax
lea eax, [rcx + rcx]
mov dword [rsp + 0x48], eax
mov word [rsi + 0x438], ax
add eax, edx
test edx, edx
je 0x22daf6e50
cmp eax, 4
jg 0x22daf7940
mov r15d, eax
add eax, eax
add edx, ecx
mov dword [rsp + 0x4c], eax
shl r15d, 0xe
mov word [rsi + 0x43a], ax
add eax, r8d
mov dword [rsi + 0x45c], r15d
mov word [rsi + 0x49e], dx
cmp eax, 8
jle 0x22daf6e85
test r8d, r8d
jne 0x22daf7940
mov ecx, eax
add eax, eax
add edx, r8d
mov dword [rsp + 0x50], eax
shl ecx, 0xd
mov word [rsi + 0x43c], ax
add eax, r11d
mov dword [rsi + 0x460], ecx
mov word [rsi + 0x4a0], dx
cmp eax, 0x10
jle 0x22daf6eb8
test r11d, r11d
jne 0x22daf7940
mov ecx, eax
add edx, r11d
add eax, eax
shl ecx, 0xc
mov dword [rsp + 0x54], eax
mov word [rsi + 0x43e], ax
add eax, r9d
mov dword [rsi + 0x464], ecx
mov word [rsi + 0x4a2], dx
test r9d, r9d
je 0x22daf6eeb
cmp eax, 0x20
jg 0x22daf7940
mov ecx, eax
add edx, r9d
add eax, eax
shl ecx, 0xb
mov dword [rsp + 0x58], eax
mov word [rsi + 0x440], ax
add eax, r10d
mov dword [rsi + 0x468], ecx
mov word [rsi + 0x4a4], dx
test r10d, r10d
je 0x22daf6f1e
cmp eax, 0x40
jg 0x22daf7940
mov ecx, eax
add edx, r10d
add eax, eax
shl ecx, 0xa
mov dword [rsp + 0x5c], eax
mov word [rsi + 0x442], ax
add eax, edi
mov dword [rsi + 0x46c], ecx
mov word [rsi + 0x4a6], dx
test edi, edi
je 0x22daf6f51
cmp eax, 0x80
jg 0x22daf7940
mov ecx, eax
add eax, eax
add edx, edi
mov dword [rsp + 0x60], eax
shl ecx, 9
mov word [rsi + 0x444], ax
add eax, r13d
mov dword [rsi + 0x470], ecx
mov word [rsi + 0x4a8], dx
cmp eax, 0x100
jle 0x22daf6f85
test r13d, r13d
jne 0x22daf7940
mov ecx, eax
add edx, r13d
add eax, eax
shl ecx, 8
mov dword [rsp + 0x64], eax
mov word [rsi + 0x446], ax
add eax, r12d
mov dword [rsi + 0x474], ecx
mov word [rsi + 0x4aa], dx
test r12d, r12d
je 0x22daf6fba
cmp eax, 0x200
jg 0x22daf7940
mov edi, dword [rsp + 0x2c]
mov ecx, eax
add eax, eax
add edx, r12d
mov dword [rsp + 0x68], eax
shl ecx, 7
mov word [rsi + 0x448], ax
add eax, edi
mov dword [rsi + 0x478], ecx
mov word [rsi + 0x4ac], dx
cmp eax, 0x400
jle 0x22daf6ff1
test edi, edi
jne 0x22daf7940
mov ecx, eax
add edx, dword [rsp + 0x2c]
add eax, eax
shl ecx, 6
mov dword [rsp + 0x6c], eax
mov word [rsi + 0x44a], ax
add eax, r14d
mov dword [rsi + 0x47c], ecx
mov word [rsi + 0x4ae], dx
test r14d, r14d
je 0x22daf7027
cmp eax, 0x800
jg 0x22daf7940
mov edi, dword [rsp + 0x30]
mov ecx, eax
add eax, eax
add edx, r14d
mov dword [rsp + 0x70], eax
shl ecx, 5
mov word [rsi + 0x44c], ax
add eax, edi
mov dword [rsi + 0x480], ecx
mov word [rsi + 0x4b0], dx
cmp eax, 0x1000
jle 0x22daf705e
test edi, edi
jne 0x22daf7940
mov ecx, eax
mov edi, dword [rsp + 0x34]
add eax, eax
add edx, dword [rsp + 0x30]
shl ecx, 4
mov dword [rsp + 0x74], eax
mov word [rsi + 0x44e], ax
add eax, edi
mov dword [rsi + 0x484], ecx
mov word [rsi + 0x4b2], dx
test edi, edi
je 0x22daf7096
cmp eax, 0x2000
jg 0x22daf7940
mov edi, dword [rsp + 0x38]
lea ecx, [rax*8]
add eax, eax
add edx, dword [rsp + 0x34]
mov dword [rsp + 0x78], eax
mov word [rsi + 0x450], ax
add eax, edi
mov dword [rsi + 0x488], ecx
mov word [rsi + 0x4b4], dx
cmp eax, 0x4000
jle 0x22daf70d0
test edi, edi
jne 0x22daf7940
mov edi, dword [rsp + 0x3c]
lea ecx, [rax*4]
add eax, eax
add edx, dword [rsp + 0x38]
mov dword [rsp + 0x7c], eax
mov word [rsi + 0x452], ax
add eax, edi
mov dword [rsi + 0x48c], ecx
mov word [rsi + 0x4b6], dx
cmp eax, 0x8000
jle 0x22daf710a
test edi, edi
jne 0x22daf7940
add eax, eax
lea r11, str._b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_b_b_b_b_b_b_b_b
mov edi, 0x10
mov dword [rsi + 0x494], 0x10000
mov dword [rsi + 0x490], eax
mov r12d, 1
xor eax, eax
movzx r8d, byte [r11 + rax]
mov ecx, r8d
test r8d, r8d
je 0x22daf7186
movsxd r10, r8d
movzx r13d, word [rsi + r10*2 + 0x434]
mov r9d, dword [rsp + r10*4 + 0x40]
mov edx, r9d
sub edx, r13d
movzx r13d, word [rsi + r10*2 + 0x498]
add edx, r13d
movsxd rdx, edx
mov byte [rsi + rdx + 0x4b8], r8b
mov word [rsi + rdx*2 + 0x5d8], ax
cmp r8d, 9
jle 0x22daf79b0
add r9d, 1
mov dword [rsp + r10*4 + 0x40], r9d
add rax, 1
cmp rax, 0x120
jne 0x22daf7130
lea rdx, [rsi + 0x818]
xor eax, eax
mov ecx, pe_nt_image_headers64
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x80], 0
mov rdi, rdx
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov dword [rsp + 0xc0], 0
mov dword [rsp + 0x94], 1
rep stosq qword [rdi], rax
lea rax, [0x22dd776c1]
lea rcx, [rax + 0x1f]
nop word [rax + rax]
movzx edx, byte [rax]
add rax, 1
add dword [rsp + rdx*4 + 0x80], 1
cmp rcx, rax
jne 0x22daf7230
mov ecx, dword [rsp + 0x84]
mov dword [rsp + 0x80], 0
cmp ecx, 2
jg 0x22daf77d0
mov edx, dword [rsp + 0x88]
cmp edx, 4
jg 0x22daf77d0
mov r8d, dword [rsp + 0x8c]
cmp r8d, 8
jg 0x22daf77d0
mov r10d, dword [rsp + 0x90]
cmp r10d, 0x10
jg 0x22daf77d0
mov r11d, dword [rsp + 0x94]
cmp r11d, 0x20
jg 0x22daf77d0
mov r9d, dword [rsp + 0x98]
cmp r9d, 0x40
jg 0x22daf77d0
mov r12d, dword [rsp + 0x9c]
cmp r12d, 0x80
jg 0x22daf77d0
mov r13d, dword [rsp + 0xa0]
cmp r13d, 0x100
jg 0x22daf77d0
mov edi, dword [rsp + 0xa4]
cmp edi, 0x200
jg 0x22daf77d0
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x2c], eax
cmp eax, 0x400
jg 0x22daf77d0
mov eax, dword [rsp + 0xac]
mov dword [rsp + 0x30], eax
cmp eax, 0x800
jg 0x22daf77d0
mov r14d, dword [rsp + 0xb0]
cmp r14d, 0x1000
jg 0x22daf77d0
mov eax, dword [rsp + 0xb4]
mov dword [rsp + 0x34], eax
cmp eax, 0x2000
jg 0x22daf77d0
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x38], eax
cmp eax, 0x4000
jg 0x22daf77d0
mov eax, dword [rsp + 0xbc]
mov dword [rsp + 0x3c], eax
cmp eax, 0x8000
jg 0x22daf77d0
xor eax, eax
xor r15d, r15d
mov dword [rsp + 0x44], 0
mov word [rsi + 0xc1a], ax
mov eax, ecx
shl eax, 0xf
mov word [rsi + 0xc7e], r15w
mov dword [rsi + 0xc3c], eax
lea eax, [rcx + rcx]
mov dword [rsp + 0x48], eax
mov word [rsi + 0xc1c], ax
add eax, edx
mov word [rsi + 0xc80], cx
test edx, edx
je 0x22daf73c2
cmp eax, 4
jg 0x22daf7940
mov r15d, eax
add edx, ecx
add eax, eax
shl r15d, 0xe
mov dword [rsp + 0x4c], eax
mov word [rsi + 0xc1e], ax
add eax, r8d
mov dword [rsi + 0xc40], r15d
mov word [rsi + 0xc82], dx
test r8d, r8d
je 0x22daf73f7
cmp eax, 8
jg 0x22daf7940
mov ecx, eax
add eax, eax
add edx, r8d
mov dword [rsp + 0x50], eax
shl ecx, 0xd
mov word [rsi + 0xc20], ax
add eax, r10d
mov dword [rsi + 0xc44], ecx
mov word [rsi + 0xc84], dx
cmp eax, 0x10
jle 0x22daf742a
test r10d, r10d
jne 0x22daf7940
mov ecx, eax
add eax, eax
add edx, r10d
mov dword [rsp + 0x54], eax
shl ecx, 0xc
mov word [rsi + 0xc22], ax
add eax, r11d
mov dword [rsi + 0xc48], ecx
mov word [rsi + 0xc86], dx
cmp eax, 0x20
jle 0x22daf745d
test r11d, r11d
jne 0x22daf7940
mov ecx, eax
add edx, r11d
add eax, eax
shl ecx, 0xb
mov dword [rsp + 0x58], eax
mov word [rsi + 0xc24], ax
add eax, r9d
mov dword [rsi + 0xc4c], ecx
mov word [rsi + 0xc88], dx
test r9d, r9d
je 0x22daf7490
cmp eax, 0x40
jg 0x22daf7940
mov ecx, eax
add eax, eax
add edx, r9d
mov dword [rsp + 0x5c], eax
shl ecx, 0xa
mov word [rsi + 0xc26], ax
add eax, r12d
mov dword [rsi + 0xc50], ecx
mov word [rsi + 0xc8a], dx
cmp eax, 0x80
jle 0x22daf74c5
test r12d, r12d
jne 0x22daf7940
mov ecx, eax
add eax, eax
add edx, r12d
mov dword [rsp + 0x60], eax
shl ecx, 9
mov word [rsi + 0xc28], ax
add eax, r13d
mov dword [rsi + 0xc54], ecx
mov word [rsi + 0xc8c], dx
cmp eax, 0x100
jle 0x22daf74fa
test r13d, r13d
jne 0x22daf7940
mov ecx, eax
add edx, r13d
add eax, eax
shl ecx, 8
mov dword [rsp + 0x64], eax
mov word [rsi + 0xc2a], ax
add eax, edi
mov dword [rsi + 0xc58], ecx
mov word [rsi + 0xc8e], dx
test edi, edi
je 0x22daf752d
cmp eax, 0x200
jg 0x22daf7940
add edx, edi
mov edi, dword [rsp + 0x2c]
mov ecx, eax
add eax, eax
mov dword [rsp + 0x68], eax
shl ecx, 7
mov word [rsi + 0xc2c], ax
add eax, edi
mov dword [rsi + 0xc5c], ecx
mov word [rsi + 0xc90], dx
cmp eax, 0x400
jle 0x22daf7563
test edi, edi
jne 0x22daf7940
mov edi, dword [rsp + 0x30]
mov ecx, eax
add eax, eax
add edx, dword [rsp + 0x2c]
mov dword [rsp + 0x6c], eax
shl ecx, 6
mov word [rsi + 0xc2e], ax
add eax, edi
mov dword [rsi + 0xc60], ecx
mov word [rsi + 0xc92], dx
cmp eax, 0x800
jle 0x22daf759b
test edi, edi
jne 0x22daf7940
mov ecx, eax
add edx, dword [rsp + 0x30]
add eax, eax
shl ecx, 5
mov dword [rsp + 0x70], eax
mov word [rsi + 0xc30], ax
add eax, r14d
mov dword [rsi + 0xc64], ecx
mov word [rsi + 0xc94], dx
test r14d, r14d
je 0x22daf75d1
cmp eax, 0x1000
jg 0x22daf7940
mov edi, dword [rsp + 0x34]
mov ecx, eax
add eax, eax
add edx, r14d
mov dword [rsp + 0x74], eax
shl ecx, 4
mov word [rsi + 0xc32], ax
add eax, edi
mov dword [rsi + 0xc68], ecx
mov word [rsi + 0xc96], dx
cmp eax, 0x2000
jle 0x22daf7608
test edi, edi
jne 0x22daf7940
mov edi, dword [rsp + 0x38]
lea ecx, [rax*8]
add eax, eax
add edx, dword [rsp + 0x34]
mov dword [rsp + 0x78], eax
mov word [rsi + 0xc34], ax
add eax, edi
mov dword [rsi + 0xc6c], ecx
mov word [rsi + 0xc98], dx
cmp eax, 0x4000
jle 0x22daf7642
test edi, edi
jne 0x22daf7940
mov edi, dword [rsp + 0x3c]
lea ecx, [rax*4]
add eax, eax
add edx, dword [rsp + 0x38]
mov dword [rsp + 0x7c], eax
mov word [rsi + 0xc36], ax
add eax, edi
mov dword [rsi + 0xc70], ecx
mov word [rsi + 0xc9a], dx
cmp eax, 0x8000
jle 0x22daf767c
test edi, edi
jne 0x22daf7940
add eax, eax
lea r11, [0x22dd776c0]
mov edi, 0x10
mov dword [rsi + 0xc78], 0x10000
mov dword [rsi + 0xc74], eax
mov r12d, 1
xor eax, eax
jmp 0x22daf76bf
add r9d, 1
mov dword [rsp + r10*4 + 0x40], r9d
add rax, 1
cmp rax, 0x20
je 0x22daf66e1
movzx r8d, byte [r11 + rax]
mov ecx, r8d
test r8d, r8d
je 0x22daf76b1
movsxd r10, r8d
movzx r13d, word [rsi + r10*2 + 0xc18]
mov r9d, dword [rsp + r10*4 + 0x40]
mov edx, r9d
sub edx, r13d
movzx r13d, word [rsi + r10*2 + 0xc7c]
add edx, r13d
movsxd rdx, edx
mov byte [rsi + rdx + 0xc9c], r8b
mov word [rsi + rdx*2 + 0xdbc], ax
cmp r8d, 9
jg 0x22daf76a8
mov r14d, r9d
lea edx, [r9 + r9]
mov r15d, r12d
mov r13d, r8d
sar r14d, 1
and edx, 0xaaaa
shl r15d, cl
mov ecx, edi
and r14d, 0x5555
sub ecx, r8d
shl r13d, 9
movsxd r15, r15d
or r14d, edx
or r13d, eax
mov edx, r14d
shl r14d, 2
sar edx, 2
and r14d, 0xcccc
and edx, 0x3333
or edx, r14d
mov r14d, edx
shl edx, 4
sar r14d, 4
and edx, 0xf0f0
and r14d, 0xf0f
or r14d, edx
mov edx, r14d
shl r14d, 8
sar edx, 8
movzx r14d, r14w
or edx, r14d
sar edx, cl
movsxd rdx, edx
nop dword [rax]
mov word [rsi + rdx*2 + 0x818], r13w
add rdx, r15
cmp edx, 0x1ff
jle 0x22daf7788
jmp 0x22daf76a8
lea rcx, [0x22dd0c480]
lea rbx, str.zlib_corrupt
xor r15d, r15d
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71
lea rcx, [0x22dd0c480]
lea rbx, str.bad_sizes
xor r15d, r15d
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71
mov r10, qword [rsi + 8]
jmp 0x22daf782d
mov rcx, qword [rsi]
cmp rcx, r10
jae 0x22daf781b
lea r9, [rcx + 1]
mov qword [rsi], r9
movzx r9d, byte [rcx]
mov ecx, eax
shl r9d, cl
or edx, r9d
add eax, 8
mov dword [rsi + 0x14], edx
mov dword [rsi + 0x10], eax
cmp eax, 0x18
jg 0x22daf6a9f
mov edi, edx
mov ecx, eax
shr edi, cl
test edi, edi
je 0x22daf7800
mov qword [rsi], r10
jmp 0x22daf6a9f
mov r10, qword [rsi + 8]
jmp 0x22daf787d
mov rcx, qword [rsi]
cmp rcx, r10
jae 0x22daf786b
lea r9, [rcx + 1]
mov qword [rsi], r9
movzx r9d, byte [rcx]
mov ecx, eax
shl r9d, cl
or edx, r9d
add eax, 8
mov dword [rsi + 0x14], edx
mov dword [rsi + 0x10], eax
cmp eax, 0x18
jg 0x22daf6ad7
mov r11d, edx
mov ecx, eax
shr r11d, cl
test r11d, r11d
je 0x22daf7850
mov qword [rsi], r10
jmp 0x22daf6ad7
cmp eax, r9d
jl 0x22daf7ba0
mov ecx, r9d
sub eax, r9d
shr r8d, cl
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x14], r8d
test eax, eax
jg 0x22daf6925
jne 0x22daf77a8
mov rdx, qword [rsi + 8]
mov rax, qword [rsi]
cmp rax, rdx
jae 0x22daf7900
lea r9, [rax + 1]
mov ecx, 1
mov qword [rsi], r9
movzx eax, byte [rax]
mov byte [rsp + 0x80], al
lea eax, [rcx + 1]
cmp r9, rdx
jb 0x22daf7ade
mov byte [rsp + rcx + 0x80], 0
cmp eax, 4
jne 0x22daf791a
jmp 0x22daf69e5
xor r10d, r10d
mov eax, 1
mov byte [rsp + r10 + 0x80], 0
cmp eax, 4
je 0x22daf69e5
mov edx, 3
sub edx, eax
cdqe
lea r8, [rdx + 1]
lea rcx, [rsp + rax + 0x80]
xor edx, edx
call sub.msvcrt.dll_memset
jmp 0x22daf69e5
lea rcx, [0x22dd0c480]
lea rbx, str.bad_codelengths
xor r15d, r15d
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71
lea rcx, [0x22dd0c480]
lea rbx, str.bad_huffman_code
xor r15d, r15d
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71
mov rdx, qword [rcx]
mov r9, qword [rcx + 8]
cmp rdx, r9
jb 0x22daf7c20
lea rcx, [0x22dd0c480]
lea rbx, str.bad_zlib_header
call fcn.22dcfcd40
mov qword [rax], rbx
xor r15d, r15d
jmp 0x22daf6a71
mov r14d, r9d
lea edx, [r9 + r9]
mov r15d, r12d
mov r13d, r8d
sar r14d, 1
and edx, 0xaaaa
shl r15d, cl
mov ecx, edi
and r14d, 0x5555
sub ecx, r8d
shl r13d, 9
movsxd r15, r15d
or r14d, edx
or r13d, eax
mov edx, r14d
shl r14d, 2
sar edx, 2
and r14d, 0xcccc
and edx, 0x3333
or edx, r14d
mov r14d, edx
shl edx, 4
sar r14d, 4
and edx, 0xf0f0
and r14d, 0xf0f
or r14d, edx
mov edx, r14d
shl r14d, 8
sar edx, 8
movzx r14d, r14w
or edx, r14d
sar edx, cl
movsxd rdx, edx
nop dword [rax]
mov word [rsi + rdx*2 + 0x34], r13w
add rdx, r15
cmp edx, 0x1ff
jle 0x22daf7a30
jmp 0x22daf717d
mov edx, ecx
jmp 0x22daf6976
mov rdx, rcx
mov rcx, rsi
call fcn.22db19990
test eax, eax
je 0x22daf7cb0
mov rdx, qword [rsi]
mov rcx, qword [rsi + 0x18]
mov r8, rbx
call sub.msvcrt.dll_memcpy
add qword [rsi], rbx
add qword [rsi + 0x18], rbx
test ebp, ebp
jne 0x22daf7c04
mov ecx, dword [rsi + 0x10]
mov edx, dword [rsi + 0x14]
jmp 0x22daf6680
mov edx, r10d
jmp 0x22daf6976
mov r14d, r14d
xor eax, eax
nop dword [rax]
movzx ecx, byte [rdx + rax]
mov byte [r13 + rax], cl
add rax, 1
cmp r14, rax
jne 0x22daf7ab8
jmp 0x22daf6900
movsxd rcx, eax
lea eax, [rcx + 1]
cmp r9, rdx
jae 0x22daf78ed
lea r10, [r9 + 1]
movsxd r8, ecx
mov qword [rsi], r10
movzx r11d, byte [r9]
mov byte [rsp + r8 + 0x80], r11b
cmp eax, 4
je 0x22daf69e5
lea r8d, [rcx + 2]
cmp r10, rdx
jae 0x22daf7b58
lea r10, [r9 + 2]
cdqe
mov qword [rsi], r10
movzx r11d, byte [r9 + 1]
mov byte [rsp + rax + 0x80], r11b
cmp r8d, 4
je 0x22daf69e5
lea eax, [rcx + 3]
xor ecx, ecx
cmp r10, rdx
jae 0x22daf7b3c
lea rdx, [r9 + 3]
mov qword [rsi], rdx
movzx ecx, byte [r9 + 2]
movsxd r8, r8d
mov byte [rsp + r8 + 0x80], cl
cmp eax, 4
jne 0x22daf791a
jmp 0x22daf69e5
cdqe
mov byte [rsp + rax + 0x80], 0
cmp r8d, 4
je 0x22daf69e5
mov eax, r8d
jmp 0x22daf791a
lea rcx, [0x22dd0c480]
lea rbx, str.read_past_buffer
xor r15d, r15d
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71
mov r11, qword [rsi + 8]
mov ecx, eax
jmp 0x22daf7bd6
mov rax, qword [rsi]
cmp rax, r11
jae 0x22daf7bc7
lea r10, [rax + 1]
mov qword [rsi], r10
movzx eax, byte [rax]
shl eax, cl
or r8d, eax
add ecx, 8
mov dword [rsi + 0x14], r8d
mov dword [rsi + 0x10], ecx
cmp ecx, 0x18
jg 0x22daf7c0f
mov eax, r8d
shr eax, cl
test eax, eax
je 0x22daf7bb0
mov qword [rsi], r11
mov eax, ecx
jmp 0x22daf78a1
mov edx, r8d
jmp 0x22daf6976
mov qword [rsi + 0x18], r13
test ebp, ebp
je 0x22daf7a91
mov r15d, 1
jmp 0x22daf6a71
mov eax, ecx
jmp 0x22daf78a1
mov rcx, r13
xor eax, eax
jmp 0x22daf6879
lea r8, [rdx + 1]
mov qword [rcx], r8
movzx eax, byte [rdx]
mov ecx, eax
cmp r9, r8
jbe 0x22daf798e
lea r10, [rdx + 2]
mov qword [rsi], r10
movzx edx, byte [rdx + 1]
mov r8d, edx
cmp r9, r10
jbe 0x22daf798e
shl eax, 8
add edx, eax
mov rax, rdx
imul rdx, rdx, 0x8421085
mov r15d, eax
shr rdx, 0x20
sub r15d, edx
shr r15d, 1
add r15d, edx
shr r15d, 4
mov edx, r15d
shl edx, 5
sub edx, r15d
sub eax, edx
mov r15d, eax
jne 0x22daf798e
and r8d, 0x20
jne 0x22daf7cb8
and ecx, 0xf
cmp cl, 8
je 0x22daf666e
lea rcx, [0x22dd0c480]
lea rbx, str.bad_compression
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71
mov r15d, eax
jmp 0x22daf6a71
lea rcx, [0x22dd0c480]
lea rbx, str.no_preset_dict
call fcn.22dcfcd40
mov qword [rax], rbx
jmp 0x22daf6a71