Function at 0x14005f9b8
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 0x14005fa9d
mov rdi, qword [rcx + 0x28]
test rdi, rdi
je 0x14005fa9d
cmp qword [rcx + 0x10], rdx
je 0x14005fa9d
cmp qword [rcx], rdx
jne 0x14005fa02
cmp dword [rcx + 8], edx
jne 0x14005fa9d
cmp dword [rdi], 0xb
jne 0x14005fa0d
mov dword [rdi], reloc.WS2_32.dll_inet_ntoa
mov r10d, dword [rcx + 0x18]
mov r11, qword [rcx + 0x10]
mov r9, qword [rcx]
mov r13d, dword [rcx + 8]
mov r14d, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov qword [rbp - 0x18], r11
mov dword [rbp + 0x50], r10d
mov qword [rbp - 0x20], r9
mov dword [rbp - 0x24], r13d
mov r8d, r10d
mov dword [rbp + 0x48], r10d
mov dword [rbp - 0x28], edx
lea rbx, [rdi + 0x6c]
lea r15, [rdi + 0x68]
mov eax, 7
mov ecx, dword [rdi]
cmp ecx, 0xf
jg 0x14006034f
je 0x140060120
cmp ecx, eax
jg 0x14006008b
je 0x14005fe55
test ecx, ecx
je 0x14005fec0
dec ecx
je 0x14005fab3
dec ecx
je 0x14005fb7f
dec ecx
je 0x14005fbde
dec ecx
je 0x14005fc64
dec ecx
je 0x14005fc8d
dec ecx
je 0x14005fdaf
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 0x14005fae2
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
add esi, 8
dec r13d
add r14d, eax
mov qword [rbp - 0x20], r9
cmp esi, 0x10
jb 0x14005fabc
mov dword [rdi + 0x10], r14d
cmp r14b, 8
je 0x14005faf8
lea rax, str.unknown_compression_method
jmp 0x140060014
test r14d, 0xe000
je 0x14005fb0d
lea rax, str.unknown_header_flags_set
jmp 0x140060014
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x14005fb21
mov eax, r14d
shr eax, 8
and eax, 1
mov dword [rcx], eax
test dword [rdi + 0x10], 0x200
je 0x14005fb51
mov ecx, dword [rdi + 0x18]
mov byte [rbp + 0x58], r14b
lea rdx, [rbp + 0x58]
shr r14d, 8
mov r8d, 2
mov byte [rbp + 0x59], r14b
call fcn.14005eeb8
mov r9, qword [rbp - 0x20]
mov dword [rdi + 0x18], eax
xor edx, edx
mov r14d, edx
mov esi, edx
mov dword [rdi], 2
jmp 0x14005fb7f
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 0x20
jb 0x14005fb5e
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fb91
mov dword [rax + 4], r14d
test dword [rdi + 0x10], 0x200
je 0x14005fbcf
mov ecx, dword [rdi + 0x18]
mov eax, r14d
mov byte [rbp + 0x58], r14b
shr eax, 8
lea rdx, [rbp + 0x58]
mov r8d, 4
mov byte [rbp + 0x59], al
mov eax, r14d
shr r14d, 0x18
shr eax, 0x10
mov byte [rbp + 0x5b], r14b
mov byte [rbp + 0x5a], al
call fcn.14005eeb8
xor edx, edx
mov dword [rdi + 0x18], eax
mov r9, qword [rbp - 0x20]
mov r14d, edx
mov esi, edx
mov dword [rdi], 3
mov ebx, reloc.WS2_32.dll_recv
jmp 0x14005fc06
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, ebx
jb 0x14005fbe5
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x14005fc27
movzx eax, r14b
mov dword [rcx + 8], eax
mov rax, qword [rdi + 0x20]
mov ecx, r14d
shr ecx, 8
mov dword [rax + 0xc], ecx
test dword [rdi + 0x10], 0x200
je 0x14005fc53
mov ecx, dword [rdi + 0x18]
mov byte [rbp + 0x58], r14b
lea rdx, [rbp + 0x58]
shr r14d, 8
mov r8d, 2
mov byte [rbp + 0x59], r14b
call fcn.14005eeb8
xor edx, edx
mov dword [rdi + 0x18], eax
mov r9, qword [rbp - 0x20]
mov r14d, edx
mov esi, edx
mov dword [rdi], 4
jmp 0x14005fc69
mov ebx, reloc.WS2_32.dll_recv
test dword [rdi + 0x10], 0x400
jne 0x14005fcfb
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fc83
mov qword [rax + 0x10], rdx
mov r9, qword [rbp - 0x20]
mov dword [rdi], 5
test dword [rdi + 0x10], 0x400
je 0x14005fda6
mov ebx, dword [rdi + 0x48]
cmp ebx, r13d
cmova ebx, r13d
test ebx, ebx
je 0x14005fd9d
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fd61
mov r9, qword [rax + 0x10]
test r9, r9
je 0x14005fd61
mov edx, dword [rax + 0x18]
mov ecx, dword [rax + 0x1c]
sub edx, dword [rdi + 0x48]
lea eax, [rbx + rdx]
cmp eax, ecx
jbe 0x14005fd46
sub ecx, edx
jmp 0x14005fd48
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, ebx
jb 0x14005fcda
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], r14d
test rax, rax
je 0x14005fd10
mov dword [rax + 0x18], r14d
test dword [rdi + 0x10], 0x200
je 0x14005fd3c
mov ecx, dword [rdi + 0x18]
mov byte [rbp + 0x58], r14b
lea rdx, [rbp + 0x58]
shr r14d, 8
mov r8d, 2
mov byte [rbp + 0x59], r14b
call fcn.14005eeb8
xor edx, edx
mov dword [rdi + 0x18], eax
mov r14d, edx
mov esi, edx
jmp 0x14005fc83
mov ecx, ebx
mov r15, qword [rbp - 0x20]
mov r8d, ecx
mov ecx, edx
mov rdx, r15
add rcx, r9
call qword [sym.imp.MSVCR120.dll_memcpy]
xor edx, edx
jmp 0x14005fd65
mov r15, qword [rbp - 0x20]
test dword [rdi + 0x10], 0x200
je 0x14005fd8a
test r15, r15
jne 0x14005fd77
mov eax, edx
jmp 0x14005fd87
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.14005eeb8
xor edx, edx
mov dword [rdi + 0x18], eax
mov r9, qword [rbp - 0x20]
mov eax, ebx
sub r13d, ebx
add r9, rax
sub dword [rdi + 0x48], ebx
mov qword [rbp - 0x20], r9
cmp dword [rdi + 0x48], edx
jne 0x140060f06
mov dword [rdi + 0x48], edx
mov dword [rdi], 6
test dword [rdi + 0x10], 0x800
je 0x14005fe3f
test r13d, r13d
je 0x140060f06
mov ebx, edx
mov eax, ebx
inc ebx
movzx r15d, byte [rax + r9]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fdf3
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x14005fdf1
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x14005fdf1
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
xor edx, edx
test r15d, r15d
je 0x14005fdfd
cmp ebx, r13d
jb 0x14005fdc7
test dword [rdi + 0x10], 0x200
je 0x14005fe26
test r9, r9
jne 0x14005fe0f
mov eax, edx
jmp 0x14005fe23
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r9
call fcn.14005eeb8
mov r9, qword [rbp - 0x20]
xor edx, edx
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r9, rax
mov qword [rbp - 0x20], r9
test r15d, r15d
je 0x14005fe4c
mov r15, r9
jmp 0x140060f26
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fe4c
mov qword [rax + 0x20], rdx
mov dword [rdi + 0x48], edx
mov dword [rdi], 7
test dword [rdi + 0x10], 0x1000
je 0x140060052
test r13d, r13d
je 0x140060f06
mov ebx, edx
mov eax, ebx
inc ebx
movzx r15d, byte [rax + r9]
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14005fe99
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x14005fe97
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x14005fe97
mov byte [rcx + rdx], r15b
inc dword [rdi + 0x48]
xor edx, edx
test r15d, r15d
je 0x14005fea3
cmp ebx, r13d
jb 0x14005fe6d
test dword [rdi + 0x10], 0x200
je 0x14006003b
test r9, r9
jne 0x140060024
mov eax, edx
jmp 0x140060038
cmp dword [rdi + 8], edx
jne 0x14005fef1
mov dword [rdi], reloc.WS2_32.dll_inet_ntoa
jmp 0x14005fa45
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
mov eax, reloc.WS2_32.dll_recv
cmp esi, eax
jb 0x14005fed0
test byte [rdi + 8], 2
je 0x14005ff45
cmp r14d, 0x8b1f
jne 0x14005ff45
mov dword [rdi + 0x18], edx
lea r8d, [rax - 0xe]
lea rdx, [rbp + 0x58]
xor ecx, ecx
mov word [rbp + 0x58], r14w
call fcn.14005eeb8
xor edx, edx
mov dword [rdi], 1
mov r14d, edx
mov esi, edx
mov dword [rdi + 0x18], eax
mov r9, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x50]
mov r11, qword [rbp - 0x18]
jmp 0x14005fa45
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x10], edx
test rax, rax
je 0x14005ff55
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 8], 1
je 0x14006000d
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 0x14006000b
mov eax, r14d
and al, 0xf
cmp al, 8
je 0x14005ffad
lea rax, str.unknown_compression_method
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
xor edx, edx
jmp 0x14005fa45
shr r14d, 4
xor edx, edx
add esi, 0xfffffffc
mov ecx, r14d
and ecx, 0xf
add ecx, 8
cmp dword [rdi + 0x28], edx
jne 0x14005fffd
mov dword [rdi + 0x28], ecx
shr r14d, 8
mov eax, 1
mov dword [rdi + 0x18], 1
not r14d
shl eax, cl
mov esi, edx
and r14d, 2
mov dword [rdi + 0x14], eax
mov dword [r12 + 0x4c], 1
or r14d, 9
mov dword [rdi], r14d
mov r14d, edx
jmp 0x14005fa45
cmp ecx, dword [rdi + 0x28]
jbe 0x14005ffc7
lea rax, str.invalid_window_size
jmp 0x140060014
xor edx, edx
lea rax, str.incorrect_header_check
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005fa45
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r9
call fcn.14005eeb8
mov r9, qword [rbp - 0x20]
xor edx, edx
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r9, rax
mov qword [rbp - 0x20], r9
test r15d, r15d
jne 0x14005fe37
jmp 0x14006005f
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x14006005f
mov qword [rax + 0x30], rdx
mov r8d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x50]
mov r11, qword [rbp - 0x18]
mov dword [rdi], 8
lea r15, [rdi + 0x68]
lea rbx, [rdi + 0x6c]
test dword [rdi + 0x10], 0x200
je 0x140060311
jmp 0x1400602ee
sub ecx, 8
je 0x140060079
dec ecx
je 0x1400601b0
dec ecx
je 0x1400601ee
dec ecx
je 0x14006020d
dec ecx
je 0x14006020d
dec ecx
je 0x1400600be
dec ecx
jne 0x14005fa9d
jmp 0x14006011a
mov ecx, esi
and ecx, 7
shr r14d, cl
sub esi, ecx
jmp 0x1400600eb
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 0x20
jb 0x1400600ca
mov eax, r14d
movzx ecx, r14w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x14006010c
lea rax, str.invalid_stored_block_lengths
jmp 0x140060014
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 0x140060344
cmp r15d, r13d
cmova r15d, r13d
cmp r15d, r10d
cmova r15d, r10d
test r15d, r15d
je 0x140060f06
mov r8d, r15d
mov rdx, r9
mov rcx, r11
mov ebx, r15d
call qword [sym.imp.MSVCR120.dll_memcpy]
mov r9, qword [rbp - 0x20]
mov r10d, dword [rbp + 0x50]
mov r11, qword [rbp - 0x18]
mov r8d, dword [rbp + 0x48]
add r9, rbx
sub r10d, r15d
add r11, rbx
sub r13d, r15d
sub dword [rdi + 0x48], r15d
mov qword [rbp - 0x20], r9
mov dword [rbp + 0x50], r10d
mov qword [rbp - 0x18], r11
lea r15, [rdi + 0x68]
lea rbx, [rdi + 0x6c]
jmp 0x14005ffa6
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 0x20
jb 0x14006018f
mov ecx, r14d
mov esi, 0xff00
mov eax, r14d
shl eax, 0x10
and ecx, esi
add ecx, eax
mov eax, r14d
shr r14d, 0x18
shr eax, 8
shl ecx, 8
and eax, esi
mov esi, edx
add eax, ecx
add eax, r14d
mov r14d, edx
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xa
cmp dword [rdi + 0xc], edx
je 0x140060edb
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 0x14006024c
mov ecx, esi
mov eax, 7
mov dword [rdi], 0x1a
and ecx, eax
shr r14d, cl
sub esi, ecx
jmp 0x14005fa4a
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 3
jb 0x14006022b
mov eax, r14d
shr r14d, 1
dec esi
and eax, 1
mov dword [rdi + 4], eax
mov eax, r14d
and eax, 3
je 0x1400602bb
dec eax
je 0x140060290
dec eax
je 0x140060287
dec eax
jne 0x1400602c1
lea rax, str.invalid_block_type
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x1400602c1
mov eax, reloc.WS2_32.dll_recv
mov dword [rdi], eax
jmp 0x1400602c1
lea rax, [0x1400e5b30]
mov dword [r15], 9
mov dword [rbx], 5
mov qword [rdi + 0x58], rax
lea rax, [0x1400e6360]
mov dword [rdi], reloc.WS2_32.dll_send
mov qword [rdi + 0x60], rax
jmp 0x1400602c1
mov dword [rdi], ntohs
shr r14d, 2
add esi, 0xfffffffe
jmp 0x14005fa45
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
mov eax, reloc.WS2_32.dll_recv
cmp esi, eax
jb 0x1400602cd
movzx eax, word [rdi + 0x18]
cmp r14d, eax
je 0x14006030c
lea rax, str.header_crc_mismatch
jmp 0x140060014
mov r14d, edx
mov esi, edx
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x140060331
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 0x14005fa45
mov dword [rdi], reloc.WS2_32.dll_inet_addr
jmp 0x14005fa41
cmp ecx, 0x17
jg 0x140060ce7
je 0x140060c4c
sub ecx, 0x10
je 0x1400603b9
dec ecx
je 0x140060412
dec ecx
je 0x140060500
dec ecx
je 0x140060859
dec ecx
je 0x14006085f
dec ecx
je 0x140060a7b
dec ecx
jne 0x14005fa9d
jmp 0x140060ad6
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 0xe
jb 0x140060398
mov ecx, r14d
shr r14d, 5
add esi, 0xfffffff2
mov edx, r14d
shr r14d, 5
and ecx, 0x1f
mov eax, r14d
and edx, 0x1f
add ecx, 0x101
and eax, 0xf
inc edx
shr r14d, 4
add eax, 4
mov dword [rdi + 0x74], ecx
mov dword [rdi + 0x78], edx
mov dword [rdi + 0x70], eax
cmp ecx, 0x11e
ja 0x140060c55
cmp edx, 0x1e
ja 0x140060c55
xor edx, edx
mov dword [rdi + 0x7c], edx
lea eax, [rdx + 0x11]
mov dword [rdi], eax
mov eax, dword [rdi + 0x70]
mov r8d, 7
lea r10, [0x1400e6330]
cmp dword [rdi + 0x7c], eax
jae 0x14006048e
jmp 0x14006044a
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 3
jb 0x140060429
mov eax, dword [rdi + 0x7c]
movzx ecx, r14w
add esi, 0xfffffffd
movzx eax, word [r10 + rax*2]
and cx, r8w
shr r14d, 3
mov word [rdi + rax*2 + 0x88], cx
inc dword [rdi + 0x7c]
mov eax, dword [rdi + 0x7c]
cmp eax, dword [rdi + 0x70]
jb 0x14006044a
jmp 0x14006048e
mov eax, dword [rdi + 0x7c]
movzx ecx, word [r10 + rax*2]
mov word [rdi + rcx*2 + 0x88], dx
inc dword [rdi + 0x7c]
cmp dword [rdi + 0x7c], 0x13
jb 0x14006047b
lea rax, [rdi + 0x548]
lea r9, [rdi + 0x80]
xor ecx, ecx
mov qword [r9], rax
mov qword [rdi + 0x58], rax
lea rax, [rdi + 0x308]
mov dword [r15], r8d
mov qword [rsp + 0x28], rax
lea rdx, [rdi + 0x88]
lea r8d, [rcx + 0x13]
mov qword [rsp + 0x20], r15
call fcn.1400642c8
xor edx, edx
mov dword [rbp - 0x28], eax
test eax, eax
je 0x1400604ef
lea rax, str.invalid_code_lengths_set
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005ff30
mov r9, qword [rbp - 0x20]
mov r11, qword [rbp - 0x18]
mov dword [rdi + 0x7c], edx
mov dword [rdi], socket
mov eax, dword [rdi + 0x78]
mov r10d, dword [rdi + 0x7c]
add eax, dword [rdi + 0x74]
cmp r10d, eax
jae 0x14006073c
jmp 0x140060536
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
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
mov dword [rbp + 0x60], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x140060515
mov ecx, eax
mov edx, reloc.WS2_32.dll_recv
shr ecx, 0x10
cmp cx, dx
jae 0x1400605bb
shr eax, 8
movzx edx, al
jmp 0x140060597
test r13d, r13d
je 0x140060f20
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, edx
jb 0x140060576
movzx ecx, byte [rbp + 0x61]
movzx eax, word [rbp + 0x62]
shr r14d, cl
sub esi, ecx
mov ecx, r10d
mov word [rdi + rcx*2 + 0x88], ax
inc dword [rdi + 0x7c]
jmp 0x1400606f1
cmp word [rbp + 0x62], dx
jne 0x140060625
movzx edx, byte [rbp + 0x61]
lea r8d, [rdx + 2]
jmp 0x1400605ec
test r13d, r13d
je 0x140060f20
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, r8d
jb 0x1400605cb
mov ecx, edx
sub esi, edx
xor edx, edx
shr r14d, cl
test r10d, r10d
je 0x14006070b
mov edx, r14d
lea eax, [r10 - 1]
shr r14d, 2
movzx r9d, word [rdi + rax*2 + 0x88]
and edx, 3
add edx, 3
add esi, 0xfffffffe
jmp 0x1400606cc
movzx r8d, byte [rbp + 0x61]
mov eax, send
cmp word [rbp + 0x62], ax
jne 0x14006067f
lea edx, [r8 + 3]
jmp 0x14006065c
test r13d, r13d
je 0x140060f20
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, edx
jb 0x14006063b
xor eax, eax
mov ecx, r8d
shr r14d, cl
mov r9d, eax
mov eax, 0xfffffffd
mov edx, r14d
and edx, 7
add edx, 3
shr r14d, 3
jmp 0x1400606c7
lea edx, [r8 + 7]
jmp 0x1400606a6
test r13d, r13d
je 0x140060f20
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, edx
jb 0x140060685
xor eax, eax
mov ecx, r8d
shr r14d, cl
mov r9d, eax
mov eax, 0xfffffff9
mov edx, r14d
and edx, 0x7f
add edx, 0xb
shr r14d, 7
sub eax, r8d
add esi, eax
mov ecx, dword [rdi + 0x78]
lea eax, [r10 + rdx]
add ecx, dword [rdi + 0x74]
cmp eax, ecx
ja 0x14006072a
test edx, edx
je 0x1400606f1
mov eax, dword [rdi + 0x7c]
mov word [rdi + rax*2 + 0x88], r9w
inc dword [rdi + 0x7c]
dec edx
jne 0x1400606de
mov eax, dword [rdi + 0x78]
mov r10d, dword [rdi + 0x7c]
add eax, dword [rdi + 0x74]
cmp r10d, eax
jae 0x14006073c
mov r9, qword [rbp - 0x20]
xor edx, edx
jmp 0x140060536
mov r8d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x50]
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005fa45
lea rax, str.invalid_bit_length_repeat
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
cmp dword [rdi], 0x1d
mov r9, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x50]
mov edx, 0
lea eax, [rdx + 7]
je 0x14005fa4a
cmp word [rdi + 0x288], dx
jne 0x140060779
lea rax, str.invalid_code____missing_end_of_block
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005fa45
mov r8d, dword [rdi + 0x74]
lea rax, [rdi + 0x548]
lea rbx, [rdi + 0x80]
mov dword [r15], 9
mov qword [rdi + 0x58], rax
mov qword [rbx], rax
lea rax, [rdi + 0x68]
lea r15, [rdi + 0x308]
lea rdx, [rdi + 0x88]
mov r9, rbx
mov ecx, 1
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.1400642c8
xor edx, edx
mov dword [rbp - 0x28], eax
test eax, eax
je 0x1400607f2
lea rax, str.invalid_literal_lengths_set
mov r9, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x50]
mov r11, qword [rbp - 0x18]
mov qword [r12 + 0x20], rax
mov dword [rdi], 0x1d
jmp 0x14005fa3d
mov rax, qword [rbx]
mov r8d, dword [rdi + 0x78]
lea rcx, [rdi + 0x6c]
mov qword [rdi + 0x60], rax
mov eax, dword [rdi + 0x74]
mov dword [rcx], 6
add rax, 0x44
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rcx
lea rdx, [rdi + rax*2]
mov r9, rbx
mov ecx, 2
call fcn.1400642c8
xor edx, edx
mov dword [rbp - 0x28], eax
test eax, eax
je 0x14006083b
lea rax, str.invalid_distances_set
jmp 0x1400607d2
mov r9, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x50]
mov r11, qword [rbp - 0x18]
mov dword [rdi], reloc.WS2_32.dll_send
lea r15, [rdi + 0x68]
lea rbx, [rdi + 0x6c]
mov dword [rdi], socket
cmp r13d, 6
jb 0x1400608da
cmp r10d, 0x102
jb 0x1400608da
mov qword [r12 + 0x10], r11
mov dword [r12 + 0x18], r10d
mov qword [r12], r9
mov dword [r12 + 8], r13d
mov edx, r8d
mov rcx, r12
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
call fcn.140063e40
cmp dword [rdi], 0xb
mov r11, qword [r12 + 0x10]
mov r10d, dword [r12 + 0x18]
mov r9, qword [r12]
mov r13d, dword [r12 + 8]
mov r14d, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov r8d, dword [rbp + 0x48]
mov edx, 0
mov qword [rbp - 0x18], r11
mov dword [rbp + 0x50], r10d
mov qword [rbp - 0x20], r9
lea eax, [rdx + 7]
jne 0x14005fa4a
or dword [rdi + 0x1bdc], 0xffffffff
jmp 0x14005fa4a
mov ecx, dword [r15]
mov r11, qword [rdi + 0x58]
mov eax, 1
shl eax, cl
mov dword [rdi + 0x1bdc], edx
lea ecx, [rax - 1]
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x140060938
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
mov ecx, dword [r15]
dec r13d
add r14d, eax
mov eax, 1
add esi, 8
shl eax, cl
mov qword [rbp - 0x20], r9
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
movzx ecx, cl
cmp ecx, esi
ja 0x1400608fd
test al, al
je 0x140060a18
test al, 0xf0
jne 0x140060a18
mov r10d, eax
movzx ecx, al
mov r9d, 1
shr r10d, 8
mov edx, eax
mov dword [rbp + 0x60], eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
dec r9d
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 0x140060a07
mov r15, qword [rbp - 0x20]
test r13d, r13d
je 0x140060f24
movzx eax, byte [r15]
movzx r9d, byte [rbp + 0x61]
mov ecx, esi
shl eax, cl
mov r8d, 1
movzx ecx, dl
add ecx, r9d
add r14d, eax
movzx eax, word [rbp + 0x62]
shl r8d, cl
mov ecx, r9d
inc r15
dec r8d
add esi, 8
dec r13d
and r8d, r14d
mov qword [rbp - 0x20], r15
shr r8d, cl
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 0x1400609a2
lea r15, [rdi + 0x68]
movzx ecx, byte [rbp + 0x61]
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
shr r14d, cl
sub esi, ecx
mov ecx, eax
shr ecx, 0x10
mov dword [rdi + 0x48], ecx
test al, al
jne 0x140060a42
mov dword [rdi], 0x19
jmp 0x14005ff30
test al, 0x20
je 0x140060a58
or dword [rdi + 0x1bdc], 0xffffffff
mov dword [rdi], reloc.WS2_32.dll_inet_addr
jmp 0x14005ff30
test al, 0x40
je 0x140060a68
lea rax, str.invalid_literal_length_code
jmp 0x1400604df
mov r9, qword [rbp - 0x20]
movzx ecx, al
mov dword [rdi], socket
and ecx, 0xf
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
test edx, edx
je 0x140060ac5
jmp 0x140060aa5
test r13d, r13d
je 0x140060f20
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, edx
jb 0x140060a84
mov ecx, edx
mov eax, 1
sub esi, edx
shl eax, cl
dec eax
and eax, r14d
shr r14d, cl
add dword [rdi + 0x48], eax
add dword [rdi + 0x1bdc], edx
mov eax, dword [rdi + 0x48]
mov dword [rdi], socket
xor edx, edx
mov dword [rdi + 0x1be0], eax
mov ecx, dword [rbx]
mov r11, qword [rdi + 0x60]
mov eax, 1
shl eax, cl
lea ecx, [rax - 1]
mov eax, r14d
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x140060b2c
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
mov ecx, dword [rbx]
dec r13d
add r14d, eax
mov eax, 1
add esi, 8
shl eax, cl
mov qword [rbp - 0x20], r9
lea ecx, [rax - 1]
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 0x140060af2
test al, 0xf0
jne 0x140060bfe
mov r10d, eax
movzx ecx, al
mov r9d, 1
shr r10d, 8
mov edx, eax
mov dword [rbp + 0x60], eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
dec r9d
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 0x140060bef
mov r15, qword [rbp - 0x20]
test r13d, r13d
je 0x140060f24
movzx eax, byte [r15]
movzx r9d, byte [rbp + 0x61]
mov ecx, esi
shl eax, cl
mov r8d, 1
movzx ecx, dl
add ecx, r9d
add r14d, eax
movzx eax, word [rbp + 0x62]
shl r8d, cl
mov ecx, r9d
inc r15
dec r8d
add esi, 8
dec r13d
and r8d, r14d
mov qword [rbp - 0x20], r15
shr r8d, cl
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 0x140060b8e
movzx ecx, byte [rbp + 0x61]
shr r14d, cl
sub esi, ecx
add dword [rdi + 0x1bdc], ecx
mov r9, qword [rbp - 0x20]
mov r8d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x50]
mov r11, qword [rbp - 0x18]
mov ecx, eax
lea r15, [rdi + 0x68]
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1bdc], ecx
shr r14d, cl
sub esi, ecx
test al, 0x40
je 0x140060c35
lea rax, str.invalid_distance_code
jmp 0x14005ff9b
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 0x140060ca2
jmp 0x140060c82
lea rax, str.too_many_length_or_distance_symbols
jmp 0x14005ff9b
test r13d, r13d
je 0x140060f20
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, edx
jb 0x140060c61
mov ecx, edx
mov eax, 1
sub esi, edx
shl eax, cl
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 r10d, r10d
je 0x140060f06
mov ecx, dword [rdi + 0x4c]
mov eax, r8d
sub eax, r10d
cmp ecx, eax
jbe 0x140060e8f
sub ecx, eax
cmp ecx, dword [rdi + 0x30]
jbe 0x140060e6e
cmp dword [rdi + 0x1bd8], edx
je 0x140060e6e
lea rax, str.invalid_distance_too_far_back
jmp 0x140060014
sub ecx, 0x18
je 0x140060caa
dec ecx
je 0x140060e46
dec ecx
je 0x140060d22
dec ecx
je 0x140060df6
dec ecx
je 0x140060f17
dec ecx
je 0x140060eff
dec ecx
jne 0x14005fa9d
mov eax, 0xfffffffc
jmp 0x14005faa2
cmp dword [rdi + 8], edx
je 0x140060df0
jmp 0x140060d4e
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 0x20
jb 0x140060d2d
sub r8d, r10d
add dword [r12 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
test r8d, r8d
je 0x140060da3
cmp dword [rdi + 0x10], edx
mov eax, r8d
mov rdx, r11
je 0x140060d82
sub rdx, rax
jne 0x140060d78
mov eax, edx
jmp 0x140060d9b
mov ecx, dword [rdi + 0x18]
call fcn.14005eeb8
jmp 0x140060d8d
mov ecx, dword [rdi + 0x18]
sub rdx, rax
call fcn.140063ac0
mov r11, qword [rbp - 0x18]
mov r10d, dword [rbp + 0x50]
mov r9, qword [rbp - 0x20]
xor edx, edx
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov ecx, r14d
mov eax, r14d
mov r8d, r10d
shl eax, 0x10
and ecx, 0xff00
mov dword [rbp + 0x48], r10d
add ecx, eax
mov eax, r14d
shr eax, 8
shl ecx, 8
and eax, 0xff00
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 0x140060deb
lea rax, str.incorrect_data_check
jmp 0x140060014
mov r14d, edx
mov esi, edx
mov dword [rdi], 0x1b
cmp dword [rdi + 8], edx
je 0x140060f11
cmp dword [rdi + 0x10], edx
je 0x140060f11
jmp 0x140060e2b
test r13d, r13d
je 0x140060f06
movzx eax, byte [r9]
mov ecx, esi
inc r9
shl eax, cl
dec r13d
mov qword [rbp - 0x20], r9
add r14d, eax
add esi, 8
cmp esi, 0x20
jb 0x140060e0a
cmp r14d, dword [rdi + 0x1c]
je 0x140060f0c
lea rax, str.incorrect_length_check
jmp 0x140060014
test r10d, r10d
je 0x140060f06
mov al, byte [rdi + 0x48]
mov byte [r11], al
inc r11
dec r10d
mov dword [rbp + 0x50], r10d
mov qword [rbp - 0x18], r11
mov dword [rdi], socket
jmp 0x14005fa45
mov eax, dword [rdi + 0x34]
cmp ecx, eax
jbe 0x140060e7e
mov edx, dword [rdi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x140060e82
sub eax, ecx
mov edx, eax
mov eax, dword [rdi + 0x48]
add rdx, qword [rdi + 0x38]
cmp ecx, eax
jbe 0x140060e9a
jmp 0x140060e98
mov eax, dword [rdi + 0x48]
mov rdx, r11
sub rdx, rcx
mov ecx, eax
cmp ecx, r10d
cmova ecx, r10d
sub r10d, ecx
sub eax, ecx
sub rdx, r11
mov dword [rbp + 0x50], r10d
mov dword [rdi + 0x48], eax
mov al, byte [rdx + r11]
mov byte [r11], al
inc r11
dec ecx
jne 0x140060eb0
xor edx, edx
mov qword [rbp - 0x18], r11
lea eax, [rcx + 7]
cmp dword [rdi + 0x48], edx
jne 0x14005fa4a
mov dword [rdi], socket
jmp 0x14005fa4a
mov qword [r12 + 0x10], r11
mov dword [r12 + 0x18], r10d
mov qword [r12], r9
mov dword [r12 + 8], r13d
mov eax, 2
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
jmp 0x14005faa2
mov dword [rbp - 0x28], 0xfffffffd
mov r15, qword [rbp - 0x20]
jmp 0x140060f26
mov r14d, edx
mov esi, edx
mov dword [rdi], 0x1c
mov dword [rbp - 0x28], 1
jmp 0x140060f06
mov r15, qword [rbp - 0x20]
xor edx, edx
mov rax, qword [rbp - 0x18]
mov ebx, dword [rbp + 0x48]
mov qword [r12], r15
mov qword [r12 + 0x10], rax
mov eax, dword [rbp + 0x50]
mov dword [r12 + 8], r13d
mov dword [r12 + 0x18], eax
mov dword [rdi + 0x40], r14d
mov dword [rdi + 0x44], esi
cmp dword [rdi + 0x2c], edx
jne 0x140060f5b
cmp dword [rdi], 0x1a
jge 0x140060f76
cmp ebx, dword [r12 + 0x18]
je 0x140060f76
mov edx, ebx
mov rcx, r12
call fcn.14005f8b8
xor edx, edx
test eax, eax
je 0x140060f76
mov dword [rdi], 0x1e
jmp 0x140060d18
sub ebx, dword [r12 + 0x18]
mov r9d, dword [rbp - 0x24]
sub r9d, dword [r12 + 8]
add dword [r12 + 0x1c], ebx
add dword [r12 + 0xc], r9d
add dword [rdi + 0x1c], ebx
mov dword [rbp - 0x24], r9d
cmp dword [rdi + 8], edx
je 0x140060fdc
test ebx, ebx
je 0x140060fdc
cmp dword [rdi + 0x10], edx
mov rdx, qword [r12 + 0x10]
mov eax, ebx
je 0x140060fc0
sub rdx, rax
jne 0x140060fb3
mov eax, edx
jmp 0x140060fd4
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
call fcn.14005eeb8
jmp 0x140060fce
mov ecx, dword [rdi + 0x18]
sub rdx, rax
mov r8d, ebx
call fcn.140063ac0
mov r9d, dword [rbp - 0x24]
xor edx, edx
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
cmp dword [rdi], 0x13
je 0x140060fe9
cmp dword [rdi], 0xe
mov r8d, edx
jne 0x140060fef
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
mov eax, dword [rbp - 0x28]
add edx, dword [rdi + 0x44]
mov dword [r12 + 0x48], edx
test r9d, r9d
jne 0x14005faa2
test ebx, ebx
jne 0x14005faa2
lea ecx, [rbx - 5]
test eax, eax
cmove eax, ecx
jmp 0x14005faa2