Function at 0x14005f53c
Capabilities:
Compress data via zlib inflate or deflate
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x10], edx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
xor edx, edx
mov r12, rcx
test rcx, rcx
je 0x14005f627
mov rdi, qword [rcx + 0x28]
test rdi, rdi
je 0x14005f627
cmp qword [rcx + 0x10], rdx
je 0x14005f627
cmp qword [rcx], rdx
jne 0x14005f586
cmp dword [rcx + 8], edx
jne 0x14005f627
cmp dword [rdi], 0xb
jne 0x14005f591
mov dword [rdi], reloc.WS2_32.dll_inet_ntoa
mov r9d, dword [rcx + 0x18]
mov r8d, r9d
mov r11, qword [rcx + 0x10]
mov r10, qword [rcx]
mov r13d, dword [rcx + 8]
mov r14d, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov qword [rbp - 0x18], r11
mov qword [rbp - 0x20], r10
mov dword [rbp + 0x48], r9d
mov dword [rbp - 0x24], r13d
mov dword [rbp + 0x58], r9d
mov dword [rbp + 0x50], edx
lea rbx, [rdi + 0x6c]
lea r15, [rdi + 0x68]
mov eax, 7
mov ecx, dword [rdi]
cmp ecx, 0xf
jg 0x14005fed8
je 0x14005fca7
cmp ecx, eax
jg 0x14005fc0c
je 0x14005f9d6
test ecx, ecx
je 0x14005fa41
sub ecx, 1
je 0x14005f63d
sub ecx, 1
je 0x14005f709
sub ecx, 1
je 0x14005f768
sub ecx, 1
je 0x14005f7ee
sub ecx, 1
je 0x14005f817
cmp ecx, 1
je 0x14005f932
mov eax, 0xfffffffe
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, reloc.WS2_32.dll_recv
cmp esi, eax
jae 0x14005f66c
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 0x10
jb 0x14005f646
mov dword [rdi + 0x10], r14d
cmp r14b, 8
je 0x14005f682
lea rax, str.unknown_compression_method
jmp 0x14005fb95
test r14d, 0xe000
je 0x14005f697
lea rax, str.unknown_header_flags_set
jmp 0x14005fb95
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x14005f6ab
mov eax, r14d
shr eax, 8
and eax, 1
mov dword [rcx], eax
test dword [rdi + 0x10], 0x200
je 0x14005f6db
mov ecx, dword [rdi + 0x18]
lea rdx, [rbp + 0x60]
mov byte [rbp + 0x60], r14b
mov r8d, 2
shr r14d, 8
mov byte [rbp + 0x61], r14b
call fcn.140061090
mov r10, qword [rbp - 0x20]
xor edx, edx
mov dword [rdi + 0x18], eax
mov r14d, edx
mov dword [rdi], 2
mov esi, edx
jmp 0x14005f709
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x14005f6e8
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005f71b
mov dword [rax + 4], r14d
test dword [rdi + 0x10], 0x200
je 0x14005f759
mov ecx, dword [rdi + 0x18]
lea rdx, [rbp + 0x60]
mov eax, r14d
mov byte [rbp + 0x60], r14b
shr eax, 8
mov r8d, 4
mov byte [rbp + 0x61], al
mov eax, r14d
shr eax, 0x10
shr r14d, 0x18
mov byte [rbp + 0x62], al
mov byte [rbp + 0x63], r14b
call fcn.140061090
mov dword [rdi + 0x18], eax
xor edx, edx
mov r10, qword [rbp - 0x20]
mov r14d, edx
mov esi, edx
mov dword [rdi], 3
mov ebx, reloc.WS2_32.dll_recv
jmp 0x14005f790
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, ebx
jb 0x14005f76f
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x14005f7b1
movzx eax, r14b
mov dword [rcx + 8], eax
mov ecx, r14d
mov rax, qword [rdi + 0x20]
shr ecx, 8
mov dword [rax + 0xc], ecx
test dword [rdi + 0x10], 0x200
je 0x14005f7dd
mov ecx, dword [rdi + 0x18]
lea rdx, [rbp + 0x60]
mov byte [rbp + 0x60], r14b
mov r8d, 2
shr r14d, 8
mov byte [rbp + 0x61], r14b
call fcn.140061090
mov dword [rdi + 0x18], eax
xor edx, edx
mov r10, qword [rbp - 0x20]
mov r14d, edx
mov esi, edx
mov dword [rdi], 4
jmp 0x14005f7f3
mov ebx, reloc.WS2_32.dll_recv
test dword [rdi + 0x10], 0x400
jne 0x14005f885
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005f80d
mov qword [rax + 0x10], rdx
mov r10, qword [rbp - 0x20]
mov dword [rdi], 5
test dword [rdi + 0x10], 0x400
je 0x14005f929
mov ebx, dword [rdi + 0x48]
cmp ebx, r13d
cmova ebx, r13d
test ebx, ebx
je 0x14005f920
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005f8e4
mov r9, qword [rax + 0x10]
test r9, r9
je 0x14005f8e4
mov edx, dword [rax + 0x18]
sub edx, dword [rdi + 0x48]
mov ecx, dword [rax + 0x1c]
lea eax, [rbx + rdx]
cmp eax, ecx
jbe 0x14005f8d0
sub ecx, edx
jmp 0x14005f8d2
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, ebx
jb 0x14005f864
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], r14d
test rax, rax
je 0x14005f89a
mov dword [rax + 0x18], r14d
test dword [rdi + 0x10], 0x200
je 0x14005f8c6
mov ecx, dword [rdi + 0x18]
lea rdx, [rbp + 0x60]
mov byte [rbp + 0x60], r14b
mov r8d, 2
shr r14d, 8
mov byte [rbp + 0x61], r14b
call fcn.140061090
mov dword [rdi + 0x18], eax
xor edx, edx
mov r14d, edx
mov esi, edx
jmp 0x14005f80d
mov ecx, ebx
mov r8d, ecx
mov ecx, edx
mov rdx, r10
add rcx, r9
call fcn.1400b1820
xor edx, edx
test dword [rdi + 0x10], 0x200
je 0x14005f90d
mov r10, qword [rbp - 0x20]
test r10, r10
jne 0x14005f8fa
mov eax, edx
jmp 0x14005f90a
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r10
call fcn.140061090
xor edx, edx
mov dword [rdi + 0x18], eax
mov r10, qword [rbp - 0x20]
sub r13d, ebx
mov eax, ebx
add r10, rax
sub dword [rdi + 0x48], ebx
mov qword [rbp - 0x20], r10
cmp dword [rdi + 0x48], edx
jne 0x140060abb
mov dword [rdi + 0x48], edx
mov dword [rdi], 6
test dword [rdi + 0x10], 0x800
je 0x14005f9c0
test r13d, r13d
je 0x140060abb
mov ebx, edx
mov eax, ebx
inc ebx
movzx r15d, byte [rax + r10]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005f976
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x14005f974
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x14005f974
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
xor edx, edx
test r15d, r15d
je 0x14005f980
cmp ebx, r13d
jb 0x14005f94a
test dword [rdi + 0x10], 0x200
je 0x14005f9a9
test r10, r10
jne 0x14005f992
mov eax, edx
jmp 0x14005f9a6
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r10
call fcn.140061090
mov r10, qword [rbp - 0x20]
xor edx, edx
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r10, rax
mov qword [rbp - 0x20], r10
test r15d, r15d
jne 0x140060ac7
jmp 0x14005f9cd
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005f9cd
mov qword [rax + 0x20], rdx
mov dword [rdi + 0x48], edx
mov dword [rdi], 7
test dword [rdi + 0x10], 0x1000
je 0x14005fbd3
test r13d, r13d
je 0x140060abb
mov ebx, edx
mov eax, ebx
inc ebx
movzx r15d, byte [rax + r10]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fa1a
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x14005fa18
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x14005fa18
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
xor edx, edx
test r15d, r15d
je 0x14005fa24
cmp ebx, r13d
jb 0x14005f9ee
test dword [rdi + 0x10], 0x200
je 0x14005fbbc
test r10, r10
jne 0x14005fba5
mov eax, edx
jmp 0x14005fbb9
cmp dword [rdi + 8], edx
jne 0x14005fa72
mov dword [rdi], reloc.WS2_32.dll_inet_ntoa
jmp 0x14005f5c9
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
mov eax, reloc.WS2_32.dll_recv
cmp esi, eax
jb 0x14005fa51
test byte [rdi + 8], 2
je 0x14005fac6
cmp r14d, 0x8b1f
jne 0x14005fac6
mov dword [rdi + 0x18], edx
lea r8d, [rax - 0xe]
lea rdx, [rbp + 0x60]
mov word [rbp + 0x60], r14w
xor ecx, ecx
call fcn.140061090
xor edx, edx
mov dword [rdi + 0x18], eax
mov r14d, edx
mov dword [rdi], 1
mov esi, edx
mov r10, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x58]
mov r9d, dword [rbp + 0x48]
mov r11, qword [rbp - 0x18]
jmp 0x14005f5c9
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x10], edx
test rax, rax
je 0x14005fad6
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 8], 1
je 0x14005fb8e
movzx ecx, r14b
mov eax, r14d
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 0x14005fb8c
mov eax, r14d
and al, 0xf
cmp al, 8
je 0x14005fb2e
lea rax, str.unknown_compression_method
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
xor edx, edx
jmp 0x14005f5c9
shr r14d, 4
add esi, 0xfffffffc
mov ecx, r14d
xor edx, edx
and ecx, 0xf
add ecx, 8
cmp dword [rdi + 0x28], edx
jne 0x14005fb7e
mov dword [rdi + 0x28], ecx
shr r14d, 8
mov eax, 1
not r14d
shl eax, cl
and r14d, 2
mov dword [rdi + 0x14], eax
or r14d, 9
mov dword [rdi + 0x18], 1
mov dword [r12 + 0x4c], 1
mov esi, edx
mov dword [rdi], r14d
mov r14d, edx
jmp 0x14005f5c9
cmp ecx, dword [rdi + 0x28]
jbe 0x14005fb48
lea rax, str.invalid_window_size
jmp 0x14005fb95
xor edx, edx
lea rax, str.incorrect_header_check
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005f5c9
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r10
call fcn.140061090
mov r10, qword [rbp - 0x20]
xor edx, edx
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r10, rax
mov qword [rbp - 0x20], r10
test r15d, r15d
jne 0x140060ac7
jmp 0x14005fbe0
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fbe0
mov qword [rax + 0x30], rdx
mov r8d, dword [rbp + 0x58]
lea r15, [rdi + 0x68]
mov r9d, dword [rbp + 0x48]
lea rbx, [rdi + 0x6c]
mov r11, qword [rbp - 0x18]
mov dword [rdi], 8
test dword [rdi + 0x10], 0x200
je 0x14005fe9a
jmp 0x14005fe77
sub ecx, 8
je 0x14005fbfa
sub ecx, 1
je 0x14005fd36
sub ecx, 1
je 0x14005fd74
sub ecx, 1
je 0x14005fd93
sub ecx, 1
je 0x14005fd93
sub ecx, 1
je 0x14005fc45
cmp ecx, 1
jne 0x14005f627
jmp 0x14005fca1
mov ecx, esi
and ecx, 7
shr r14d, cl
sub esi, ecx
jmp 0x14005fc72
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x14005fc51
mov eax, r14d
movzx ecx, r14w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x14005fc93
lea rax, str.invalid_stored_block_lengths
jmp 0x14005fb95
mov dword [rdi + 0x48], ecx
mov r14d, edx
mov esi, edx
mov dword [rdi], ntohs
mov dword [rdi], reloc.WS2_32.dll_ntohs
mov r15d, dword [rdi + 0x48]
test r15d, r15d
je 0x14005fecd
cmp r15d, r13d
cmova r15d, r13d
cmp r15d, r9d
cmova r15d, r9d
test r15d, r15d
je 0x140060abb
mov r8d, r15d
mov rdx, r10
mov rcx, r11
mov ebx, r15d
call fcn.1400b1820
mov r10, qword [rbp - 0x20]
sub r13d, r15d
mov r9d, dword [rbp + 0x48]
add r10, rbx
mov r11, qword [rbp - 0x18]
sub r9d, r15d
mov r8d, dword [rbp + 0x58]
add r11, rbx
sub dword [rdi + 0x48], r15d
lea rbx, [rdi + 0x6c]
lea r15, [rdi + 0x68]
mov qword [rbp - 0x20], r10
mov dword [rbp + 0x48], r9d
mov qword [rbp - 0x18], r11
jmp 0x14005fb27
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x14005fd15
mov ecx, r14d
mov esi, 0xff00
and ecx, esi
mov eax, r14d
shl eax, 0x10
add ecx, eax
mov eax, r14d
shr eax, 8
and eax, esi
shl ecx, 8
shr r14d, 0x18
add eax, ecx
add eax, r14d
mov esi, edx
mov dword [rdi + 0x18], eax
mov r14d, edx
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xa
cmp dword [rdi + 0xc], edx
je 0x140060a78
mov dword [rdi + 0x18], 1
mov dword [r12 + 0x4c], 1
mov dword [rdi], reloc.WS2_32.dll_inet_addr
cmp dword [rdi + 4], edx
je 0x14005fdd2
mov ecx, esi
mov dword [rdi], 0x1a
mov eax, 7
and ecx, eax
shr r14d, cl
sub esi, ecx
jmp 0x14005f5ce
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 3
jb 0x14005fdb1
mov eax, r14d
dec esi
and eax, 1
shr r14d, 1
mov dword [rdi + 4], eax
mov eax, r14d
and eax, 3
je 0x14005fe44
sub eax, 1
je 0x14005fe19
sub eax, 1
je 0x14005fe10
cmp eax, 1
jne 0x14005fe4a
lea rax, str.invalid_block_type
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005fe4a
mov eax, reloc.WS2_32.dll_recv
mov dword [rdi], eax
jmp 0x14005fe4a
lea rax, [0x14014a9e0]
mov dword [r15], 9
mov qword [rdi + 0x58], rax
lea rax, [0x14014b1e0]
mov qword [rdi + 0x60], rax
mov dword [rbx], 5
mov dword [rdi], reloc.WS2_32.dll_send
jmp 0x14005fe4a
mov dword [rdi], ntohs
shr r14d, 2
add esi, 0xfffffffe
jmp 0x14005f5c9
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
mov eax, reloc.WS2_32.dll_recv
cmp esi, eax
jb 0x14005fe56
movzx eax, word [rdi + 0x18]
cmp r14d, eax
je 0x14005fe95
lea rax, str.header_crc_mismatch
jmp 0x14005fb95
mov r14d, edx
mov esi, edx
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x14005feba
mov eax, dword [rdi + 0x10]
sar eax, 9
and eax, 1
mov dword [rcx + 0x3c], eax
mov rax, qword [rdi + 0x20]
mov dword [rax + 0x40], 1
mov dword [rdi + 0x18], edx
mov dword [r12 + 0x4c], edx
mov dword [rdi], reloc.WS2_32.dll_inet_addr
jmp 0x14005f5c9
mov dword [rdi], reloc.WS2_32.dll_inet_addr
jmp 0x14005f5c5
cmp ecx, 0x17
jg 0x14006087d
je 0x1400607e2
sub ecx, 0x10
je 0x14005ff48
sub ecx, 1
je 0x14005ffa1
sub ecx, 1
je 0x14006008f
sub ecx, 1
je 0x1400603f7
sub ecx, 1
je 0x1400603fd
sub ecx, 1
je 0x140060615
cmp ecx, 1
jne 0x14005f627
jmp 0x140060670
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 0xe
jb 0x14005ff27
mov ecx, r14d
add esi, 0xfffffff2
shr r14d, 5
and ecx, 0x1f
mov edx, r14d
add ecx, 0x101
shr r14d, 5
and edx, 0x1f
mov eax, r14d
mov dword [rdi + 0x74], ecx
and eax, 0xf
shr r14d, 4
add eax, 4
inc edx
mov dword [rdi + 0x78], edx
mov dword [rdi + 0x70], eax
cmp ecx, 0x11e
ja 0x1400607eb
cmp edx, 0x1e
ja 0x1400607eb
xor edx, edx
mov dword [rdi + 0x7c], edx
lea eax, [rdx + 0x11]
mov dword [rdi], eax
mov eax, dword [rdi + 0x70]
lea r9, [0x14014b260]
mov r8d, 7
cmp dword [rdi + 0x7c], eax
jae 0x14006001d
jmp 0x14005ffd9
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 3
jb 0x14005ffb8
mov eax, dword [rdi + 0x7c]
movzx ecx, r14w
and cx, r8w
shr r14d, 3
add esi, 0xfffffffd
movzx eax, word [r9 + rax*2]
mov word [rdi + rax*2 + 0x88], cx
inc dword [rdi + 0x7c]
mov eax, dword [rdi + 0x7c]
cmp eax, dword [rdi + 0x70]
jb 0x14005ffd9
jmp 0x14006001d
mov eax, dword [rdi + 0x7c]
movzx ecx, word [r9 + rax*2]
mov word [rdi + rcx*2 + 0x88], dx
inc dword [rdi + 0x7c]
cmp dword [rdi + 0x7c], 0x13
jb 0x14006000a
lea rax, [rdi + 0x548]
mov dword [r15], r8d
lea r9, [rdi + 0x80]
mov qword [rdi + 0x58], rax
xor ecx, ecx
mov qword [r9], rax
lea rax, [rdi + 0x308]
mov qword [rsp + 0x28], rax
lea rdx, [rdi + 0x88]
mov qword [rsp + 0x20], r15
lea r8d, [rcx + 0x13]
call fcn.140064294
xor edx, edx
mov dword [rbp + 0x50], eax
test eax, eax
je 0x14006007e
lea rax, str.invalid_code_lengths_set
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005fab1
mov r10, qword [rbp - 0x20]
mov r11, qword [rbp - 0x18]
mov dword [rdi + 0x7c], edx
mov dword [rdi], socket
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x1400602e9
mov ecx, dword [r15]
mov eax, 1
shl eax, cl
lea ecx, [rax - 1]
mov eax, r14d
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
or r8d, 0xffffffff
movzx ecx, cl
mov dword [rbp - 0x28], eax
cmp ecx, esi
jbe 0x14006010d
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
mov ecx, dword [r15]
add r14d, eax
mov eax, 1
mov qword [rbp - 0x20], r10
shl eax, cl
add r13d, r8d
add esi, 8
lea ecx, [rax - 1]
mov eax, r14d
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
jmp 0x1400600c1
mov ecx, eax
mov edx, reloc.WS2_32.dll_recv
shr ecx, 0x10
cmp cx, dx
jae 0x14006016c
shr eax, 8
movzx edx, al
jmp 0x140060145
test r13d, r13d
je 0x140060ac1
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
add r13d, r8d
add esi, 8
cmp esi, edx
jb 0x140060124
movzx ecx, byte [rbp - 0x27]
movzx eax, word [rbp - 0x26]
sub esi, ecx
shr r14d, cl
mov ecx, dword [rdi + 0x7c]
mov word [rdi + rcx*2 + 0x88], ax
inc dword [rdi + 0x7c]
mov ecx, dword [rdi + 0x7c]
jmp 0x1400602a7
cmp word [rbp - 0x26], dx
jne 0x1400601d6
movzx edx, byte [rbp - 0x27]
lea r8d, [rdx + 2]
jmp 0x14006019d
test r13d, r13d
je 0x140060ac1
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, r8d
jb 0x14006017c
mov eax, dword [rdi + 0x7c]
mov ecx, edx
sub esi, edx
shr r14d, cl
xor edx, edx
test eax, eax
je 0x1400602b8
mov edx, r14d
dec eax
and edx, 3
shr r14d, 2
add edx, 3
add esi, 0xfffffffe
movzx r8d, word [rdi + rax*2 + 0x88]
jmp 0x14006027d
movzx r9d, byte [rbp - 0x27]
mov eax, send
cmp word [rbp - 0x26], ax
jne 0x140060230
lea edx, [r9 + 3]
jmp 0x14006020d
test r13d, r13d
je 0x140060ac1
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
add r13d, r8d
add esi, 8
cmp esi, edx
jb 0x1400601ec
xor eax, eax
mov ecx, r9d
shr r14d, cl
mov r8d, eax
mov edx, r14d
mov eax, 0xfffffffd
and edx, 7
add edx, 3
shr r14d, 3
jmp 0x140060278
lea edx, [r9 + 7]
jmp 0x140060257
test r13d, r13d
je 0x140060ac1
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
add r13d, r8d
add esi, 8
cmp esi, edx
jb 0x140060236
xor eax, eax
mov ecx, r9d
shr r14d, cl
mov r8d, eax
mov edx, r14d
mov eax, 0xfffffff9
and edx, 0x7f
add edx, 0xb
shr r14d, 7
sub eax, r9d
add esi, eax
mov ecx, dword [rdi + 0x7c]
mov eax, dword [rdi + 0x78]
add ecx, edx
add eax, dword [rdi + 0x74]
cmp ecx, eax
ja 0x1400602d7
mov eax, dword [rdi + 0x7c]
mov word [rdi + rax*2 + 0x88], r8w
inc dword [rdi + 0x7c]
mov ecx, dword [rdi + 0x7c]
add edx, 0xffffffff
jne 0x14006028c
lea rbx, [rdi + 0x6c]
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp ecx, eax
jae 0x1400602e9
xor edx, edx
jmp 0x14006009e
mov r8d, dword [rbp + 0x58]
lea rax, str.invalid_bit_length_repeat
mov r9d, dword [rbp + 0x48]
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005f5c9
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
cmp dword [rdi], 0x1d
mov edx, 0
mov r8d, dword [rbp + 0x58]
mov r9d, dword [rbp + 0x48]
lea eax, [rdx + 7]
je 0x14005f5ce
cmp word [rdi + 0x288], dx
jne 0x140060317
lea rax, str.invalid_code____missing_end_of_block
jmp 0x14005fb95
mov r8d, dword [rdi + 0x74]
lea rax, [rdi + 0x548]
lea rbx, [rdi + 0x80]
mov dword [r15], 9
mov qword [rbx], rax
lea r15, [rdi + 0x308]
mov qword [rdi + 0x58], rax
lea rdx, [rdi + 0x88]
lea rax, [rdi + 0x68]
mov qword [rsp + 0x28], r15
mov r9, rbx
mov qword [rsp + 0x20], rax
mov ecx, 1
call fcn.140064294
xor edx, edx
mov dword [rbp + 0x50], eax
test eax, eax
je 0x140060390
lea rax, str.invalid_literal_lengths_set
mov r10, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x58]
mov r9d, dword [rbp + 0x48]
mov r11, qword [rbp - 0x18]
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005f5c1
mov rax, qword [rbx]
lea rcx, [rdi + 0x6c]
mov r8d, dword [rdi + 0x78]
mov r9, rbx
mov qword [rdi + 0x60], rax
mov eax, dword [rdi + 0x74]
add rax, 0x44
mov dword [rcx], 6
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rcx
mov ecx, 2
lea rdx, [rdi + rax*2]
call fcn.140064294
xor edx, edx
mov dword [rbp + 0x50], eax
test eax, eax
je 0x1400603d9
lea rax, str.invalid_distances_set
jmp 0x140060370
mov r10, qword [rbp - 0x20]
lea r15, [rdi + 0x68]
mov r8d, dword [rbp + 0x58]
lea rbx, [rdi + 0x6c]
mov r9d, dword [rbp + 0x48]
mov r11, qword [rbp - 0x18]
mov dword [rdi], reloc.WS2_32.dll_send
mov dword [rdi], socket
cmp r13d, 6
jb 0x140060478
cmp r9d, 0x102
jb 0x140060478
mov qword [r12 + 0x10], r11
mov edx, r8d
mov dword [r12 + 0x18], r9d
mov rcx, r12
mov qword [r12], r10
mov dword [r12 + 8], r13d
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
call fcn.14006479c
cmp dword [rdi], 0xb
mov edx, 0
mov r11, qword [r12 + 0x10]
mov r10, qword [r12]
mov r9d, dword [r12 + 0x18]
mov r13d, dword [r12 + 8]
lea eax, [rdx + 7]
mov r14d, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov r8d, dword [rbp + 0x58]
mov qword [rbp - 0x18], r11
mov dword [rbp + 0x48], r9d
mov qword [rbp - 0x20], r10
jne 0x14005f5ce
or dword [rdi + 0x1bdc], 0xffffffff
jmp 0x14005f5ce
mov ecx, dword [r15]
mov r9d, 1
mov r11, qword [rdi + 0x58]
mov eax, r9d
shl eax, cl
sub eax, r9d
mov dword [rdi + 0x1bdc], edx
mov ecx, eax
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x1400604dc
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
add r10, r9
mov ecx, dword [r15]
add r14d, eax
mov eax, r9d
mov qword [rbp - 0x20], r10
shl eax, cl
dec r13d
sub eax, r9d
add esi, 8
mov ecx, eax
mov eax, r14d
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x1400604a1
test al, al
je 0x1400605b2
test al, 0xf0
jne 0x1400605b2
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov edx, eax
movzx r8d, r10b
add ecx, r8d
mov dword [rbp - 0x28], eax
shl r9d, cl
mov ecx, r8d
dec r9d
shr eax, 0x10
and r9d, r14d
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
cmp r8d, esi
jbe 0x1400605a1
mov r10, qword [rbp - 0x20]
test r13d, r13d
je 0x140060ac5
movzx eax, byte [r10]
mov ecx, esi
movzx r9d, byte [rbp - 0x27]
mov r8d, 1
shl eax, cl
inc r10
add r14d, eax
movzx ecx, dl
movzx eax, word [rbp - 0x26]
add ecx, r9d
shl r8d, cl
dec r13d
dec r8d
mov qword [rbp - 0x20], r10
and r8d, r14d
mov ecx, r9d
shr r8d, cl
add esi, 8
add r8d, eax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x140060540
movzx ecx, byte [rbp - 0x27]
shr r14d, cl
sub esi, ecx
xor edx, edx
mov dword [rdi + 0x1bdc], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
sub esi, ecx
shr r14d, cl
mov ecx, eax
shr ecx, 0x10
mov dword [rdi + 0x48], ecx
test al, al
jne 0x1400605dc
mov dword [rdi], 0x19
jmp 0x14005fab1
test al, 0x20
je 0x1400605f2
or dword [rdi + 0x1bdc], 0xffffffff
mov dword [rdi], reloc.WS2_32.dll_inet_addr
jmp 0x14005fab1
test al, 0x40
je 0x140060602
lea rax, str.invalid_literal_length_code
jmp 0x14006006e
mov r10, qword [rbp - 0x20]
movzx ecx, al
and ecx, 0xf
mov dword [rdi], socket
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
je 0x14006065f
jmp 0x14006063f
test r13d, r13d
je 0x140060ac1
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, edx
jb 0x14006061e
mov ecx, edx
mov eax, 1
shl eax, cl
sub esi, edx
dec eax
and eax, r14d
shr r14d, cl
add dword [rdi + 0x48], eax
add dword [rdi + 0x1bdc], edx
mov eax, dword [rdi + 0x48]
xor edx, edx
mov dword [rdi + 0x1be0], eax
mov dword [rdi], socket
mov ecx, dword [rbx]
mov r9d, 1
mov r11, qword [rdi + 0x60]
mov eax, r9d
shl eax, cl
sub eax, r9d
mov ecx, eax
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x1400606cc
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
add r10, r9
mov ecx, dword [rbx]
add r14d, eax
mov eax, r9d
mov qword [rbp - 0x20], r10
shl eax, cl
dec r13d
sub eax, r9d
add esi, 8
mov ecx, eax
mov eax, r14d
and rcx, rax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x140060692
test al, 0xf0
jne 0x140060798
mov r10d, eax
movzx ecx, al
shr r10d, 8
mov edx, eax
movzx r8d, r10b
add ecx, r8d
mov dword [rbp - 0x28], eax
shl r9d, cl
mov ecx, r8d
dec r9d
shr eax, 0x10
and r9d, r14d
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
cmp r8d, esi
jbe 0x140060789
mov r10, qword [rbp - 0x20]
test r13d, r13d
je 0x140060ac5
movzx eax, byte [r10]
mov ecx, esi
movzx r9d, byte [rbp - 0x27]
mov r8d, 1
shl eax, cl
inc r10
add r14d, eax
movzx ecx, dl
movzx eax, word [rbp - 0x26]
add ecx, r9d
shl r8d, cl
dec r13d
dec r8d
mov qword [rbp - 0x20], r10
and r8d, r14d
mov ecx, r9d
shr r8d, cl
add esi, 8
add r8d, eax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x140060728
movzx ecx, byte [rbp - 0x27]
shr r14d, cl
sub esi, ecx
add dword [rdi + 0x1bdc], ecx
mov r10, qword [rbp - 0x20]
mov ecx, eax
mov r8d, dword [rbp + 0x58]
mov r9d, dword [rbp + 0x48]
mov r11, qword [rbp - 0x18]
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
sub esi, ecx
shr r14d, cl
test al, 0x40
je 0x1400607cb
lea rax, str.invalid_distance_code
jmp 0x14005fb1c
mov ecx, eax
mov dword [rdi], reloc.WS2_32.dll_socket
shr ecx, 0x10
mov dword [rdi + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
je 0x140060838
jmp 0x140060818
lea rax, str.too_many_length_or_distance_symbols
jmp 0x14005fb1c
test r13d, r13d
je 0x140060ac1
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, edx
jb 0x1400607f7
mov ecx, edx
mov eax, 1
shl eax, cl
sub esi, edx
dec eax
and eax, r14d
shr r14d, cl
add dword [rdi + 0x4c], eax
add dword [rdi + 0x1bdc], edx
mov dword [rdi], 0x18
xor edx, edx
test r9d, r9d
je 0x140060abb
mov ecx, dword [rdi + 0x4c]
mov eax, r8d
sub eax, r9d
cmp ecx, eax
jbe 0x140060a2b
sub ecx, eax
cmp ecx, dword [rdi + 0x30]
jbe 0x140060a0a
cmp dword [rdi + 0x1bd8], edx
je 0x140060a0a
lea rax, str.invalid_distance_too_far_back
jmp 0x14005fb95
sub ecx, 0x18
je 0x140060840
sub ecx, 1
je 0x1400609e2
sub ecx, 1
je 0x1400608be
sub ecx, 1
je 0x140060992
sub ecx, 1
je 0x140060ab3
sub ecx, 1
je 0x140060a9c
cmp ecx, 1
jne 0x14005f627
mov eax, 0xfffffffc
jmp 0x14005f62c
cmp dword [rdi + 8], edx
je 0x14006098c
jmp 0x1400608ea
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x1400608c9
sub r8d, r9d
add dword [r12 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
test r8d, r8d
je 0x14006093f
cmp dword [rdi + 0x10], edx
mov rdx, r11
mov eax, r8d
je 0x14006091e
sub rdx, rax
jne 0x140060914
mov eax, edx
jmp 0x140060937
mov ecx, dword [rdi + 0x18]
call fcn.140061090
jmp 0x140060929
mov ecx, dword [rdi + 0x18]
sub rdx, rax
call fcn.140063ef0
mov r11, qword [rbp - 0x18]
xor edx, edx
mov r9d, dword [rbp + 0x48]
mov r10, qword [rbp - 0x20]
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov ecx, r14d
mov dword [rbp + 0x58], r9d
and ecx, 0xff00
mov eax, r14d
shl eax, 0x10
mov r8d, r9d
add ecx, eax
mov eax, r14d
shr eax, 8
and eax, 0xff00
shl ecx, 8
add ecx, eax
mov eax, r14d
shr eax, 0x18
add ecx, eax
cmp dword [rdi + 0x10], edx
cmovne ecx, r14d
cmp ecx, dword [rdi + 0x18]
je 0x140060987
lea rax, str.incorrect_data_check
jmp 0x14005fb95
mov r14d, edx
mov esi, edx
mov dword [rdi], 0x1b
cmp dword [rdi + 8], edx
je 0x140060aad
cmp dword [rdi + 0x10], edx
je 0x140060aad
jmp 0x1400609c7
test r13d, r13d
je 0x140060abb
movzx eax, byte [r10]
mov ecx, esi
shl eax, cl
inc r10
add r14d, eax
mov qword [rbp - 0x20], r10
dec r13d
add esi, 8
cmp esi, 0x20
jb 0x1400609a6
cmp r14d, dword [rdi + 0x1c]
je 0x140060aa8
lea rax, str.incorrect_length_check
jmp 0x14005fb95
test r9d, r9d
je 0x140060abb
mov al, byte [rdi + 0x48]
mov byte [r11], al
inc r11
dec r9d
mov qword [rbp - 0x18], r11
mov dword [rbp + 0x48], r9d
mov dword [rdi], socket
jmp 0x14005f5c9
mov eax, dword [rdi + 0x34]
cmp ecx, eax
jbe 0x140060a1a
mov edx, dword [rdi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x140060a1e
sub eax, ecx
mov edx, eax
add rdx, qword [rdi + 0x38]
mov eax, dword [rdi + 0x48]
cmp ecx, eax
jbe 0x140060a36
jmp 0x140060a34
mov eax, dword [rdi + 0x48]
mov rdx, r11
sub rdx, rcx
mov ecx, eax
cmp ecx, r9d
cmova ecx, r9d
sub r9d, ecx
sub eax, ecx
mov dword [rbp + 0x48], r9d
sub rdx, r11
mov dword [rdi + 0x48], eax
mov al, byte [rdx + r11]
mov byte [r11], al
inc r11
add ecx, 0xffffffff
jne 0x140060a4c
xor edx, edx
mov qword [rbp - 0x18], r11
lea eax, [rcx + 7]
cmp dword [rdi + 0x48], edx
jne 0x14005f5ce
mov dword [rdi], socket
jmp 0x14005f5ce
mov qword [r12 + 0x10], r11
mov eax, 2
mov dword [r12 + 0x18], r9d
mov qword [r12], r10
mov dword [r12 + 8], r13d
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
jmp 0x14005f62c
mov r15d, 0xfffffffd
mov r10, qword [rbp - 0x20]
jmp 0x140060acb
mov r14d, edx
mov esi, edx
mov dword [rdi], 0x1c
mov r15d, 1
jmp 0x140060aa2
mov r10, qword [rbp - 0x20]
jmp 0x140060ac7
mov r10, qword [rbp - 0x20]
xor edx, edx
mov r15d, dword [rbp + 0x50]
mov rax, qword [rbp - 0x18]
mov ebx, dword [rbp + 0x58]
mov qword [r12 + 0x10], rax
mov eax, dword [rbp + 0x48]
mov dword [r12 + 0x18], eax
mov qword [r12], r10
mov dword [r12 + 8], r13d
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
cmp dword [rdi + 0x2c], edx
jne 0x140060b00
cmp dword [rdi], 0x1a
jge 0x140060b1b
cmp ebx, dword [r12 + 0x18]
je 0x140060b1b
mov edx, ebx
mov rcx, r12
call fcn.14005f43c
xor edx, edx
test eax, eax
je 0x140060b1b
mov dword [rdi], 0x1e
jmp 0x1400608b4
sub ebx, dword [r12 + 0x18]
mov r9d, dword [rbp - 0x24]
sub r9d, dword [r12 + 8]
add dword [r12 + 0xc], r9d
add dword [r12 + 0x1c], ebx
add dword [rdi + 0x1c], ebx
mov dword [rbp - 0x24], r9d
cmp dword [rdi + 8], edx
je 0x140060b81
test ebx, ebx
je 0x140060b81
cmp dword [rdi + 0x10], edx
mov rdx, qword [r12 + 0x10]
mov eax, ebx
je 0x140060b65
sub rdx, rax
jne 0x140060b58
mov eax, edx
jmp 0x140060b79
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
call fcn.140061090
jmp 0x140060b73
mov ecx, dword [rdi + 0x18]
sub rdx, rax
mov r8d, ebx
call fcn.140063ef0
mov r9d, dword [rbp - 0x24]
xor edx, edx
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
cmp dword [rdi], 0x13
je 0x140060b8e
cmp dword [rdi], 0xe
mov r8d, edx
jne 0x140060b94
mov r8d, 0x100
mov eax, dword [rdi + 4]
neg eax
mov eax, 0x80
sbb ecx, ecx
and ecx, 0x40
cmp dword [rdi], 0xb
cmove edx, eax
lea eax, [r8 + rcx]
add edx, eax
add edx, dword [rdi + 0x44]
mov dword [r12 + 0x48], edx
test r9d, r9d
jne 0x140060bca
test ebx, ebx
jne 0x140060bca
test r15d, r15d
lea eax, [rbx - 5]
cmove r15d, eax
mov eax, r15d
jmp 0x14005f62c