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

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xf8
mov rax, qword [0x1402126b0]
xor rax, rsp
mov qword [rsp + 0xe8], rax
cmp qword [rsp + 0x110], 0
je 0x140080b69
mov rax, qword [rsp + 0x110]
cmp qword [rax + 0x28], 0
je 0x140080b69
mov rax, qword [rsp + 0x110]
cmp qword [rax + 0x10], 0
je 0x140080b69
mov rax, qword [rsp + 0x110]
cmp qword [rax], 0
jne 0x140080b73
mov rax, qword [rsp + 0x110]
cmp dword [rax + 8], 0
je 0x140080b73
mov eax, 0xfffffffe
jmp 0x1400837c4
mov rax, qword [rsp + 0x110]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
cmp dword [rax], 0xb
jne 0x140080b99
mov rax, qword [rsp + 0x38]
mov dword [rax], recvfrom
mov rax, qword [rsp + 0x110]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x110]
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 8]
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140080b99
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x6c], 0
mov rax, qword [rsp + 0x38]
mov eax, dword [rax]
mov dword [rsp + 0xac], eax
cmp dword [rsp + 0xac], 0x1e
ja case.default.0x140080c43
movsxd rax, dword [rsp + 0xac]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x837e0]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 8], 0
jne 0x140080c60
mov rax, qword [rsp + 0x38]
mov dword [rax], recvfrom
jmp 0x14008352c
cmp dword [rsp + 0x40], 0x10
jae 0x140080cb7
cmp dword [rsp + 0x44], 0
jne 0x140080c73
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140080c67
jmp 0x140080c60
xor eax, eax
test eax, eax
jne 0x140080c60
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 8]
and eax, 2
test eax, eax
je 0x140080d6d
cmp dword [rsp + 0x30], 0x8b1f
jne 0x140080d6d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
mov eax, 1
imul rax, rax, 0
movzx ecx, byte [rsp + 0x30]
mov byte [rsp + rax + 0xe4], cl
mov eax, dword [rsp + 0x30]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov byte [rsp + rcx + 0xe4], al
mov r8d, 2
lea rdx, [rsp + 0xe4]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
xor eax, eax
test eax, eax
jne 0x140080cf2
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x140080d47
mov rax, qword [rsp + 0x38]
mov dword [rax], 1
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x10], 0
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140080d95
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov dword [rax + 0x40], 0xffffffff
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 8]
and eax, 1
test eax, eax
je 0x140080dc8
mov eax, dword [rsp + 0x30]
and eax, 0xff
shl eax, 8
mov ecx, dword [rsp + 0x30]
shr ecx, 8
add eax, ecx
xor edx, edx
mov ecx, 0x1f
div ecx
mov eax, edx
test eax, eax
je 0x140080deb
mov rax, qword [rsp + 0x110]
lea rcx, str.incorrect_header_check
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov eax, dword [rsp + 0x30]
and eax, 0xf
cmp eax, 8
je 0x140080e1a
mov rax, qword [rsp + 0x110]
lea rcx, str.unknown_compression_method
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov eax, dword [rsp + 0x30]
shr eax, 4
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 4
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140080e1a
mov eax, dword [rsp + 0x30]
and eax, 0xf
add eax, 8
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x28], 0
jne 0x140080e5d
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x64]
mov dword [rax + 0x28], ecx
jmp 0x140080e8e
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x28]
cmp dword [rsp + 0x64], eax
jbe 0x140080e8e
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_window_size
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov eax, dword [rsp + 0x64]
mov ecx, 1
mov dword [rsp + 0xd8], ecx
movzx ecx, al
mov eax, dword [rsp + 0xd8]
shl eax, cl
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x14], eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14007b8f0
mov dword [rsp + 0xb0], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0xb0]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0xb0]
mov dword [rax + 0x4c], ecx
mov eax, dword [rsp + 0x30]
and eax, 0x200
test eax, eax
je 0x140080f00
mov dword [rsp + 0x88], 9
jmp 0x140080f0b
mov dword [rsp + 0x88], reloc.WS2_32.dll_inet_addr
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x88]
mov dword [rax], ecx
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x140080f19
jmp 0x14008352c
cmp dword [rsp + 0x40], 0x10
jae 0x140080f8b
cmp dword [rsp + 0x44], 0
jne 0x140080f47
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140080f3b
jmp case.0x140080c43.1
xor eax, eax
test eax, eax
jne case.0x140080c43.1
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
mov dword [rax + 0x10], ecx
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0xff
cmp eax, 8
je 0x140080fd2
mov rax, qword [rsp + 0x110]
lea rcx, [0x140213638]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0xe000
test eax, eax
je 0x140081006
mov rax, qword [rsp + 0x110]
lea rcx, str.unknown_header_flags_set
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081027
mov eax, dword [rsp + 0x30]
shr eax, 8
and eax, 1
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x20]
mov dword [rcx], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x14008108d
mov eax, 1
imul rax, rax, 0
movzx ecx, byte [rsp + 0x30]
mov byte [rsp + rax + 0xe4], cl
mov eax, dword [rsp + 0x30]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov byte [rsp + rcx + 0xe4], al
mov r8d, 2
lea rdx, [rsp + 0xe4]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
xor eax, eax
test eax, eax
jne 0x140081038
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x14008108d
mov rax, qword [rsp + 0x38]
mov dword [rax], 2
cmp dword [rsp + 0x40], 0x20
jae 0x140081105
cmp dword [rsp + 0x44], 0
jne 0x1400810c1
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x1400810b5
jmp case.0x140080c43.2
xor eax, eax
test eax, eax
jne case.0x140080c43.2
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081127
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov ecx, dword [rsp + 0x30]
mov dword [rax + 4], ecx
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x1400811c3
mov eax, 1
imul rax, rax, 0
movzx ecx, byte [rsp + 0x30]
mov byte [rsp + rax + 0xe4], cl
mov eax, dword [rsp + 0x30]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov byte [rsp + rcx + 0xe4], al
mov eax, dword [rsp + 0x30]
shr eax, 0x10
mov ecx, 1
imul rcx, rcx, 2
mov byte [rsp + rcx + 0xe4], al
mov eax, dword [rsp + 0x30]
shr eax, 0x18
mov ecx, 1
imul rcx, rcx, 3
mov byte [rsp + rcx + 0xe4], al
mov r8d, 4
lea rdx, [rsp + 0xe4]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
xor eax, eax
test eax, eax
jne 0x14008113c
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x1400811c3
mov rax, qword [rsp + 0x38]
mov dword [rax], 3
cmp dword [rsp + 0x40], 0x10
jae 0x14008123b
cmp dword [rsp + 0x44], 0
jne 0x1400811f7
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x1400811eb
jmp case.0x140080c43.3
xor eax, eax
test eax, eax
jne case.0x140080c43.3
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081275
mov eax, dword [rsp + 0x30]
and eax, 0xff
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x20]
mov dword [rcx + 8], eax
mov eax, dword [rsp + 0x30]
shr eax, 8
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x20]
mov dword [rcx + 0xc], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x1400812db
mov eax, 1
imul rax, rax, 0
movzx ecx, byte [rsp + 0x30]
mov byte [rsp + rax + 0xe4], cl
mov eax, dword [rsp + 0x30]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov byte [rsp + rcx + 0xe4], al
mov r8d, 2
lea rdx, [rsp + 0xe4]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
xor eax, eax
test eax, eax
jne 0x140081286
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x1400812db
mov rax, qword [rsp + 0x38]
mov dword [rax], 4
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x400
test eax, eax
je 0x140081414
cmp dword [rsp + 0x40], 0x10
jae 0x140081368
cmp dword [rsp + 0x44], 0
jne 0x140081324
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081318
jmp 0x140081311
xor eax, eax
test eax, eax
jne 0x140081311
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
mov dword [rax + 0x48], ecx
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081396
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov ecx, dword [rsp + 0x30]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x1400813fc
mov eax, 1
imul rax, rax, 0
movzx ecx, byte [rsp + 0x30]
mov byte [rsp + rax + 0xe4], cl
mov eax, dword [rsp + 0x30]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov byte [rsp + rcx + 0xe4], al
mov r8d, 2
lea rdx, [rsp + 0xe4]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
xor eax, eax
test eax, eax
jne 0x1400813a7
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x1400813fc
jmp 0x140081431
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081431
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov qword [rax + 0x10], 0
mov rax, qword [rsp + 0x38]
mov dword [rax], 5
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x400
test eax, eax
je 0x140081599
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x48], eax
jbe 0x14008146f
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
je 0x140081589
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x14008151f
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
cmp qword [rax + 0x10], 0
je 0x14008151f
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x48]
mov eax, dword [rax + 0x18]
sub eax, ecx
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x64]
add ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x20]
cmp eax, dword [rcx + 0x1c]
jbe 0x1400814ed
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov ecx, dword [rsp + 0x64]
mov eax, dword [rax + 0x1c]
sub eax, ecx
mov dword [rsp + 0x8c], eax
jmp 0x1400814f8
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x20]
mov edx, dword [rsp + 0x64]
add rdx, qword [rcx + 0x10]
mov rcx, rdx
mov rdi, rcx
mov rsi, qword [rsp + 0x50]
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x14008154f
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov eax, dword [rax + 0x48]
sub eax, ecx
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x48], 0
je 0x140081599
jmp 0x140083531
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x48], 0
mov rax, qword [rsp + 0x38]
mov dword [rax], 6
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x800
test eax, eax
je 0x1400816cc
cmp dword [rsp + 0x44], 0
jne 0x1400815d1
jmp 0x140083531
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081655
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
cmp qword [rax + 0x20], 0
je 0x140081655
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov rcx, qword [rsp + 0x38]
mov eax, dword [rax + 0x28]
cmp dword [rcx + 0x48], eax
jae 0x140081655
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x48]
mov rax, qword [rax + 0x20]
movzx edx, byte [rsp + 0x64]
mov byte [rax + rcx], dl
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x48]
inc eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
cmp dword [rsp + 0x64], 0
je 0x14008166a
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x48], eax
jb 0x1400815d9
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x14008169a
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
cmp dword [rsp + 0x64], 0
je 0x1400816ca
jmp 0x140083531
jmp 0x1400816e9
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x1400816e9
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov qword [rax + 0x20], 0
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x48], 0
mov rax, qword [rsp + 0x38]
mov dword [rax], 7
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x1000
test eax, eax
je 0x14008181c
cmp dword [rsp + 0x44], 0
jne 0x140081721
jmp 0x140083531
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x1400817a5
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
cmp qword [rax + 0x30], 0
je 0x1400817a5
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov rcx, qword [rsp + 0x38]
mov eax, dword [rax + 0x38]
cmp dword [rcx + 0x48], eax
jae 0x1400817a5
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x48]
mov rax, qword [rax + 0x30]
movzx edx, byte [rsp + 0x64]
mov byte [rax + rcx], dl
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x48]
inc eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
cmp dword [rsp + 0x64], 0
je 0x1400817ba
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x48], eax
jb 0x140081729
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x1400817ea
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x18], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
cmp dword [rsp + 0x64], 0
je 0x14008181a
jmp 0x140083531
jmp 0x140081839
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081839
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov qword [rax + 0x30], 0
mov rax, qword [rsp + 0x38]
mov dword [rax], 8
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 0x200
test eax, eax
je 0x140081902
cmp dword [rsp + 0x40], 0x10
jae 0x1400818b0
cmp dword [rsp + 0x44], 0
jne 0x14008186c
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081860
jmp 0x140081859
xor eax, eax
test eax, eax
jne 0x140081859
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x18]
and eax, 0xffff
cmp dword [rsp + 0x30], eax
je 0x1400818ec
mov rax, qword [rsp + 0x110]
lea rcx, str.header_crc_mismatch
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x1400818ec
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x20], 0
je 0x140081938
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
sar eax, 9
and eax, 1
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x20]
mov dword [rcx + 0x3c], eax
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
mov dword [rax + 0x40], 1
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14007c0f0
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x90]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x90]
mov dword [rax + 0x4c], ecx
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_inet_addr
jmp 0x14008352c
cmp dword [rsp + 0x40], 0x20
jae 0x1400819d3
cmp dword [rsp + 0x44], 0
jne 0x14008198f
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081983
jmp case.0x140080c43.9
xor eax, eax
test eax, eax
jne case.0x140080c43.9
mov eax, dword [rsp + 0x30]
shr eax, 0x18
and eax, 0xff
mov ecx, dword [rsp + 0x30]
shr ecx, 8
and ecx, 0xff00
add eax, ecx
mov ecx, dword [rsp + 0x30]
and ecx, 0xff00
shl ecx, 8
add eax, ecx
mov ecx, dword [rsp + 0x30]
and ecx, 0xff
shl ecx, 0x18
add eax, ecx
mov dword [rsp + 0x94], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x94]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x94]
mov dword [rax + 0x4c], ecx
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x140081a3a
mov rax, qword [rsp + 0x38]
mov dword [rax], 0xa
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0xc], 0
jne 0x140081acd
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x10], rcx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x60]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x50]
mov qword [rax], rcx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x44]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
mov dword [rax + 0x40], ecx
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x40]
mov dword [rax + 0x44], ecx
xor eax, eax
test eax, eax
jne 0x140081a66
mov eax, 2
jmp 0x1400837c4
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14007b8f0
mov dword [rsp + 0x98], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x98]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x98]
mov dword [rax + 0x4c], ecx
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_inet_addr
cmp dword [rsp + 0x118], 5
je 0x140081b20
cmp dword [rsp + 0x118], 6
jne case.0x140080c43.12
jmp 0x140083531
mov rax, qword [rsp + 0x38]
cmp dword [rax + 4], 0
je 0x140081b6d
mov eax, dword [rsp + 0x40]
and eax, 7
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
and eax, 7
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081b30
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WLDAP32.dll_Ordinal_26
jmp 0x14008352c
cmp dword [rsp + 0x40], 3
jae 0x140081bc4
cmp dword [rsp + 0x44], 0
jne 0x140081b80
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081b74
jmp 0x140081b6d
xor eax, eax
test eax, eax
jne 0x140081b6d
mov eax, dword [rsp + 0x30]
and eax, 1
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 4], eax
mov eax, dword [rsp + 0x30]
shr eax, 1
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
dec eax
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081bd9
mov eax, dword [rsp + 0x30]
and eax, 3
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 0
je 0x140081c1c
cmp dword [rsp + 0x78], 1
je 0x140081c29
cmp dword [rsp + 0x78], 2
je 0x140081c6b
cmp dword [rsp + 0x78], 3
je 0x140081c78
jmp 0x140081c96
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_listen
jmp 0x140081c96
mov rcx, qword [rsp + 0x38]
call fcn.140080870
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_send
cmp dword [rsp + 0x118], 6
jne 0x140081c69
mov eax, dword [rsp + 0x30]
shr eax, 2
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 2
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081c48
jmp 0x140083531
jmp 0x140081c96
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_recv
jmp 0x140081c96
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_block_type
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
mov eax, dword [rsp + 0x30]
shr eax, 2
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 2
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081c96
jmp 0x14008352c
mov eax, dword [rsp + 0x40]
and eax, 7
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
and eax, 7
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne case.0x140080c43.13
cmp dword [rsp + 0x40], 0x20
jae 0x140081d3b
cmp dword [rsp + 0x44], 0
jne 0x140081cf7
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081ceb
jmp 0x140081ce4
xor eax, eax
test eax, eax
jne 0x140081ce4
mov eax, dword [rsp + 0x30]
and eax, 0xffff
mov ecx, dword [rsp + 0x30]
shr ecx, 0x10
xor ecx, 0xffff
cmp eax, ecx
je 0x140081d7e
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_stored_block_lengths
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov eax, dword [rsp + 0x30]
and eax, 0xffff
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x140081d8f
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_ntohl
cmp dword [rsp + 0x118], 6
jne case.0x140080c43.14
jmp 0x140083531
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_ntohs
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
je 0x140081e86
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x48], eax
jbe 0x140081df3
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x60]
cmp dword [rsp + 0x48], eax
jbe 0x140081e05
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
jne 0x140081e11
jmp 0x140083531
mov eax, dword [rsp + 0x48]
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x50]
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x60]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov eax, dword [rax + 0x48]
sub eax, ecx
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_inet_addr
jmp 0x14008352c
cmp dword [rsp + 0x40], 0xe
jae 0x140081eed
cmp dword [rsp + 0x44], 0
jne 0x140081ea9
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081e9d
jmp case.0x140080c43.16
xor eax, eax
test eax, eax
jne case.0x140080c43.16
mov eax, dword [rsp + 0x30]
and eax, 0x1f
add eax, 0x101
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x74], eax
mov eax, dword [rsp + 0x30]
shr eax, 5
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 5
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081f07
mov eax, dword [rsp + 0x30]
and eax, 0x1f
inc eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x78], eax
mov eax, dword [rsp + 0x30]
shr eax, 5
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 5
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081f34
mov eax, dword [rsp + 0x30]
and eax, 0xf
add eax, 4
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x70], eax
mov eax, dword [rsp + 0x30]
shr eax, 4
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 4
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081f62
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x74], 0x11e
ja 0x140081f97
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x78], 0x1e
jbe 0x140081fba
mov rax, qword [rsp + 0x110]
lea rcx, str.too_many_length_or_distance_symbols
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x7c], 0
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.COMCTL32.dll_InitCommonControls
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x70]
cmp dword [rax + 0x7c], ecx
jae 0x14008209e
cmp dword [rsp + 0x40], 3
jae 0x14008203e
cmp dword [rsp + 0x44], 0
jne 0x140081ffa
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140081fee
jmp 0x140081fe7
xor eax, eax
test eax, eax
jne 0x140081fe7
mov eax, dword [rsp + 0x30]
and eax, 7
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x7c]
lea rdx, [0x1401ddcc0]
movzx ecx, word [rdx + rcx*2]
mov rdx, qword [rsp + 0x38]
mov word [rdx + rcx*2 + 0x88], ax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
inc eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x7c], eax
mov eax, dword [rsp + 0x30]
shr eax, 3
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 3
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x14008207d
jmp case.0x140080c43.17
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x7c], 0x13
jae 0x1400820df
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
lea rcx, [0x1401ddcc0]
movzx eax, word [rcx + rax*2]
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
mov word [rdx + rax*2 + 0x88], cx
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
inc eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x7c], eax
jmp 0x14008209e
mov rax, qword [rsp + 0x38]
add rax, 0x548
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x80], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x80]
mov qword [rax + 0x58], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x68], 7
mov rax, qword [rsp + 0x38]
add rax, 0x308
mov rcx, qword [rsp + 0x38]
add rcx, 0x68
mov rdx, qword [rsp + 0x38]
add rdx, 0x80
mov rdi, qword [rsp + 0x38]
add rdi, 0x88
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r9, rdx
mov r8d, reloc.WS2_32.dll_send
mov rdx, rdi
xor ecx, ecx
call fcn.140083900
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
je 0x14008218e
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_code_lengths_set
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x7c], 0
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_select
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x74]
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x78]
mov rcx, qword [rsp + 0x38]
cmp dword [rcx + 0x7c], eax
jae 0x140082660
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x68]
mov ecx, 1
mov dword [rsp + 0xdc], ecx
movzx ecx, al
mov eax, dword [rsp + 0xdc]
shl eax, cl
dec eax
mov ecx, dword [rsp + 0x30]
and ecx, eax
mov eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x58]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x58], eax
movzx eax, byte [rsp + 0x59]
cmp eax, dword [rsp + 0x40]
ja 0x14008220c
jmp 0x14008225f
cmp dword [rsp + 0x44], 0
jne 0x140082218
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x14008220c
jmp 0x1400821c3
movzx eax, word [rsp + 0x5a]
cmp eax, 0x10
jge 0x140082328
movzx eax, byte [rsp + 0x59]
cmp dword [rsp + 0x40], eax
jae 0x1400822c8
cmp dword [rsp + 0x44], 0
jne 0x140082284
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082278
jmp 0x14008226d
xor eax, eax
test eax, eax
jne 0x14008226d
movzx eax, byte [rsp + 0x59]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x59]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x1400822ce
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
mov rcx, qword [rsp + 0x38]
movzx edx, word [rsp + 0x5a]
mov word [rcx + rax*2 + 0x88], dx
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
inc eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x7c], eax
jmp 0x14008265b
movzx eax, word [rsp + 0x5a]
cmp eax, 0x10
jne 0x14008243d
movzx eax, byte [rsp + 0x59]
add eax, 2
cmp dword [rsp + 0x40], eax
jae 0x140082394
cmp dword [rsp + 0x44], 0
jne 0x140082350
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082344
jmp 0x140082336
xor eax, eax
test eax, eax
jne 0x140082336
movzx eax, byte [rsp + 0x59]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x59]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x14008239a
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x7c], 0
jne 0x1400823f1
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_bit_length_repeat
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x140082660
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
dec eax
mov eax, eax
mov rcx, qword [rsp + 0x38]
movzx eax, word [rcx + rax*2 + 0x88]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x30]
and eax, 3
add eax, 3
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x30]
shr eax, 2
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 2
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x14008241c
jmp 0x1400825ce
movzx eax, word [rsp + 0x5a]
cmp eax, 0x11
jne 0x14008250f
movzx eax, byte [rsp + 0x59]
add eax, 3
cmp dword [rsp + 0x40], eax
jae 0x1400824a9
cmp dword [rsp + 0x44], 0
jne 0x140082465
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082459
jmp 0x14008244b
xor eax, eax
test eax, eax
jne 0x14008244b
movzx eax, byte [rsp + 0x59]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x59]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x1400824af
mov dword [rsp + 0x64], 0
mov eax, dword [rsp + 0x30]
and eax, 7
add eax, 3
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x30]
shr eax, 3
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 3
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x1400824ee
jmp 0x1400825ce
movzx eax, byte [rsp + 0x59]
add eax, 7
cmp dword [rsp + 0x40], eax
jae 0x14008256d
cmp dword [rsp + 0x44], 0
jne 0x140082529
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x14008251d
jmp 0x14008250f
xor eax, eax
test eax, eax
jne 0x14008250f
movzx eax, byte [rsp + 0x59]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x59]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082573
mov dword [rsp + 0x64], 0
mov eax, dword [rsp + 0x30]
and eax, 0x7f
add eax, 0xb
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x30]
shr eax, 7
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x40]
sub eax, 7
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x1400825b2
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
add eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x74]
mov rdx, qword [rsp + 0x38]
add ecx, dword [rdx + 0x78]
cmp eax, ecx
jbe 0x14008260e
mov rax, qword [rsp + 0x110]
lea rcx, [0x140213530]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x140082660
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0xe0], eax
mov eax, dword [rsp + 0x48]
dec eax
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0xe0], 0
je 0x14008265b
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
mov rcx, qword [rsp + 0x38]
movzx edx, word [rsp + 0x64]
mov word [rcx + rax*2 + 0x88], dx
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x7c]
inc eax
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x7c], eax
jmp 0x14008260e
jmp case.0x140080c43.18
mov rax, qword [rsp + 0x38]
cmp dword [rax], 0x1d
jne 0x14008266f
jmp 0x14008352c
mov eax, 2
imul rax, rax, 0x100
mov rcx, qword [rsp + 0x38]
movzx eax, word [rcx + rax + 0x88]
test eax, eax
jne 0x1400826af
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_code____missing_end_of_block
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
add rax, 0x548
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x80], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x80]
mov qword [rax + 0x58], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x68], 9
mov rax, qword [rsp + 0x38]
add rax, 0x308
mov rcx, qword [rsp + 0x38]
add rcx, 0x68
mov rdx, qword [rsp + 0x38]
add rdx, 0x80
mov rdi, qword [rsp + 0x38]
add rdi, 0x88
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r9, rdx
mov rax, qword [rsp + 0x38]
mov r8d, dword [rax + 0x74]
mov rdx, rdi
mov ecx, 1
call fcn.140083900
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
je 0x140082764
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_literal_lengths_set
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x80]
mov qword [rax + 0x60], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x6c], 6
mov rax, qword [rsp + 0x38]
add rax, 0x308
mov rcx, qword [rsp + 0x38]
add rcx, 0x6c
mov rdx, qword [rsp + 0x38]
add rdx, 0x80
mov rdi, qword [rsp + 0x38]
mov edi, dword [rdi + 0x74]
mov rsi, qword [rsp + 0x38]
lea rdi, [rsi + rdi*2 + 0x88]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r9, rdx
mov rax, qword [rsp + 0x38]
mov r8d, dword [rax + 0x78]
mov rdx, rdi
mov ecx, 2
call fcn.140083900
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
je 0x14008280b
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_distances_set
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_send
cmp dword [rsp + 0x118], 6
jne case.0x140080c43.19
jmp 0x140083531
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_sendto
cmp dword [rsp + 0x44], 6
jb 0x140082932
cmp dword [rsp + 0x60], 0x102
jb 0x140082932
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x10], rcx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x60]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x50]
mov qword [rax], rcx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x44]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
mov dword [rax + 0x40], ecx
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x40]
mov dword [rax + 0x44], ecx
xor eax, eax
test eax, eax
jne 0x140082849
mov edx, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x110]
call fcn.14007f970
mov rax, qword [rsp + 0x110]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x110]
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 8]
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x1400828b7
mov rax, qword [rsp + 0x38]
cmp dword [rax], 0xb
jne 0x14008292d
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x1bdc], 0xffffffff
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x1bdc], 0
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x68]
mov ecx, 1
mov dword [rsp + 0xc0], ecx
movzx ecx, al
mov eax, dword [rsp + 0xc0]
shl eax, cl
dec eax
mov ecx, dword [rsp + 0x30]
and ecx, eax
mov eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x58]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x58], eax
movzx eax, byte [rsp + 0x59]
cmp eax, dword [rsp + 0x40]
ja 0x14008298a
jmp 0x1400829dd
cmp dword [rsp + 0x44], 0
jne 0x140082996
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x14008298a
jmp 0x140082941
movzx eax, byte [rsp + 0x58]
test eax, eax
je 0x140082b01
movzx eax, byte [rsp + 0x58]
and eax, 0xf0
test eax, eax
jne 0x140082b01
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x68], eax
movzx eax, word [rsp + 0x6a]
movzx ecx, byte [rsp + 0x69]
movzx edx, byte [rsp + 0x68]
add ecx, edx
mov edx, 1
shl edx, cl
mov ecx, edx
dec ecx
mov edx, dword [rsp + 0x30]
and edx, ecx
mov ecx, edx
mov dword [rsp + 0xc4], ecx
movzx edx, byte [rsp + 0x69]
movzx ecx, dl
mov edx, dword [rsp + 0xc4]
shr edx, cl
mov ecx, edx
add eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x58]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x58], eax
movzx eax, byte [rsp + 0x69]
movzx ecx, byte [rsp + 0x59]
add eax, ecx
cmp eax, dword [rsp + 0x40]
ja 0x140082a6a
jmp 0x140082abd
cmp dword [rsp + 0x44], 0
jne 0x140082a76
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082a6a
jmp 0x140082a04
movzx eax, byte [rsp + 0x69]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x69]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082abd
movzx eax, byte [rsp + 0x69]
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x1bdc]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1bdc], eax
movzx eax, byte [rsp + 0x59]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x59]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082b01
movzx eax, byte [rsp + 0x59]
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x1bdc]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1bdc], eax
movzx eax, word [rsp + 0x5a]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
movzx eax, byte [rsp + 0x58]
test eax, eax
jne 0x140082b6b
mov rax, qword [rsp + 0x38]
mov dword [rax], Ordinal_26
jmp 0x14008352c
movzx eax, byte [rsp + 0x58]
and eax, 0x20
test eax, eax
je 0x140082b96
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x1bdc], 0xffffffff
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_inet_addr
jmp 0x14008352c
movzx eax, byte [rsp + 0x58]
and eax, 0x40
test eax, eax
je 0x140082bc5
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_literal_length_code
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
movzx eax, byte [rsp + 0x58]
and eax, 0xf
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x50], eax
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_setsockopt
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x50], 0
je 0x140082cda
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
cmp dword [rsp + 0x40], eax
jae 0x140082c4d
cmp dword [rsp + 0x44], 0
jne 0x140082c09
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082bfd
jmp 0x140082bef
xor eax, eax
test eax, eax
jne 0x140082bef
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
mov ecx, 1
mov dword [rsp + 0xc8], ecx
movzx ecx, al
mov eax, dword [rsp + 0xc8]
shl eax, cl
dec eax
mov ecx, dword [rsp + 0x30]
and ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x48]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082c8d
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x1bdc]
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x50]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1bdc], eax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x48]
mov dword [rax + 0x1be0], ecx
mov rax, qword [rsp + 0x38]
mov dword [rax], socket
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x6c]
mov ecx, 1
mov dword [rsp + 0xcc], ecx
movzx ecx, al
mov eax, dword [rsp + 0xcc]
shl eax, cl
dec eax
mov ecx, dword [rsp + 0x30]
and ecx, eax
mov eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x60]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x58], eax
movzx eax, byte [rsp + 0x59]
cmp eax, dword [rsp + 0x40]
ja 0x140082d41
jmp 0x140082d94
cmp dword [rsp + 0x44], 0
jne 0x140082d4d
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082d41
jmp case.0x140080c43.22
movzx eax, byte [rsp + 0x58]
and eax, 0xf0
test eax, eax
jne 0x140082eab
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x68], eax
movzx eax, word [rsp + 0x6a]
movzx ecx, byte [rsp + 0x69]
movzx edx, byte [rsp + 0x68]
add ecx, edx
mov edx, 1
shl edx, cl
mov ecx, edx
dec ecx
mov edx, dword [rsp + 0x30]
and edx, ecx
mov ecx, edx
mov dword [rsp + 0xd0], ecx
movzx edx, byte [rsp + 0x69]
movzx ecx, dl
mov edx, dword [rsp + 0xd0]
shr edx, cl
mov ecx, edx
add eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x60]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x58], eax
movzx eax, byte [rsp + 0x69]
movzx ecx, byte [rsp + 0x59]
add eax, ecx
cmp eax, dword [rsp + 0x40]
ja 0x140082e14
jmp 0x140082e67
cmp dword [rsp + 0x44], 0
jne 0x140082e20
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082e14
jmp 0x140082dae
movzx eax, byte [rsp + 0x69]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x69]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082e67
movzx eax, byte [rsp + 0x69]
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x1bdc]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1bdc], eax
movzx eax, byte [rsp + 0x59]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x59]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082eab
movzx eax, byte [rsp + 0x59]
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x1bdc]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1bdc], eax
movzx eax, byte [rsp + 0x58]
and eax, 0x40
test eax, eax
je 0x140082f1e
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_distance_code
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
movzx eax, word [rsp + 0x5a]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x4c], eax
movzx eax, byte [rsp + 0x58]
and eax, 0xf
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x50], eax
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_socket
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x50], 0
je 0x140083040
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
cmp dword [rsp + 0x40], eax
jae 0x140082fb3
cmp dword [rsp + 0x44], 0
jne 0x140082f6f
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082f63
jmp 0x140082f55
xor eax, eax
test eax, eax
jne 0x140082f55
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
mov ecx, 1
mov dword [rsp + 0xd4], ecx
movzx ecx, al
mov eax, dword [rsp + 0xd4]
shl eax, cl
dec eax
mov ecx, dword [rsp + 0x30]
and ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x4c]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x50]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140082ff3
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x1bdc]
mov rcx, qword [rsp + 0x38]
add eax, dword [rcx + 0x50]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1bdc], eax
mov rax, qword [rsp + 0x38]
mov dword [rax], Ordinal_26
cmp dword [rsp + 0x60], 0
jne 0x140083057
jmp 0x140083531
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
cmp dword [rax + 0x4c], ecx
jbe 0x14008314c
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov eax, dword [rax + 0x4c]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x30]
cmp dword [rsp + 0x48], eax
jbe 0x1400830ca
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x1bd8], 0
je 0x1400830ca
mov rax, qword [rsp + 0x110]
lea rcx, str.invalid_distance_too_far_back
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x34]
cmp dword [rsp + 0x48], eax
jbe 0x14008310f
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x34]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov eax, dword [rax + 0x2c]
sub eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x38]
add rax, qword [rcx + 0x38]
mov qword [rsp + 0xb8], rax
jmp 0x140083130
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov eax, dword [rax + 0x34]
sub eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x38]
add rax, qword [rcx + 0x38]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x48]
cmp dword [rsp + 0x48], eax
jbe 0x14008314a
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x48], eax
jmp 0x140083173
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x4c]
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x60]
cmp dword [rsp + 0x48], eax
jbe 0x140083185
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x60]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov eax, dword [rax + 0x48]
sub eax, ecx
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x48], eax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xb8]
movzx ecx, byte [rcx]
mov byte [rax], cl
mov rax, qword [rsp + 0x70]
inc rax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0xb8]
inc rax
mov qword [rsp + 0xb8], rax
mov eax, dword [rsp + 0x48]
dec eax
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
jne 0x1400831ab
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x48], 0
jne 0x140083204
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_sendto
jmp 0x14008352c
cmp dword [rsp + 0x60], 0
jne 0x140083215
jmp 0x140083531
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
movzx ecx, byte [rcx + 0x48]
mov byte [rax], cl
mov rax, qword [rsp + 0x70]
inc rax
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x60]
dec eax
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WS2_32.dll_sendto
jmp 0x14008352c
mov rax, qword [rsp + 0x38]
cmp dword [rax + 8], 0
je 0x14008342f
cmp dword [rsp + 0x40], 0x20
jae 0x1400832b2
cmp dword [rsp + 0x44], 0
jne 0x14008326e
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x140083262
jmp 0x14008325b
xor eax, eax
test eax, eax
jne 0x14008325b
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0x1c]
add eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x110]
mov dword [rcx + 0x1c], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x1c]
add eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1c], eax
cmp dword [rsp + 0x5c], 0
je 0x140083385
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x10], 0
je 0x140083339
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
mov r8d, dword [rsp + 0x5c]
mov rdx, rax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov dword [rsp + 0x80], eax
jmp 0x140083364
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
mov r8d, dword [rsp + 0x5c]
mov rdx, rax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007b8f0
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x80]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x80]
mov dword [rax + 0x4c], ecx
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x10], 0
je 0x1400833a5
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x9c], eax
jmp 0x1400833e5
mov eax, dword [rsp + 0x30]
shr eax, 0x18
and eax, 0xff
mov ecx, dword [rsp + 0x30]
shr ecx, 8
and ecx, 0xff00
add eax, ecx
mov ecx, dword [rsp + 0x30]
and ecx, 0xff00
shl ecx, 8
add eax, ecx
mov ecx, dword [rsp + 0x30]
and ecx, 0xff
shl ecx, 0x18
add eax, ecx
mov dword [rsp + 0x9c], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x18]
cmp dword [rsp + 0x9c], eax
je 0x140083419
mov rax, qword [rsp + 0x110]
lea rcx, str.incorrect_data_check
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x140083419
mov rax, qword [rsp + 0x38]
mov dword [rax], reloc.WLDAP32.dll_Ordinal_27
mov rax, qword [rsp + 0x38]
cmp dword [rax + 8], 0
je 0x1400834f9
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x10], 0
je 0x1400834f9
cmp dword [rsp + 0x40], 0x20
jae 0x1400834af
cmp dword [rsp + 0x44], 0
jne 0x14008346b
jmp 0x140083531
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x40]
shl eax, cl
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
xor eax, eax
test eax, eax
jne 0x14008345f
jmp 0x140083458
xor eax, eax
test eax, eax
jne 0x140083458
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x1c]
cmp dword [rsp + 0x30], eax
je 0x1400834e3
mov rax, qword [rsp + 0x110]
lea rcx, str.incorrect_length_check
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1d
jmp 0x14008352c
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x40], 0
xor eax, eax
test eax, eax
jne 0x1400834e3
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1c
mov dword [rsp + 0x6c], 1
jmp 0x140083531
mov dword [rsp + 0x6c], 0xfffffffd
jmp 0x140083531
mov eax, 0xfffffffc
jmp 0x1400837c4
mov eax, 0xfffffffe
jmp 0x1400837c4
jmp 0x140080c0e
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x10], rcx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x60]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x50]
mov qword [rax], rcx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x44]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
mov dword [rax + 0x40], ecx
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x40]
mov dword [rax + 0x44], ecx
xor eax, eax
test eax, eax
jne 0x140083531
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x2c], 0
jne 0x1400835b4
mov rax, qword [rsp + 0x38]
cmp dword [rax], 0x1a
jge 0x1400835de
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0x18]
cmp dword [rsp + 0x5c], eax
je 0x1400835de
mov edx, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x110]
call fcn.1400808b0
test eax, eax
je 0x1400835de
mov rax, qword [rsp + 0x38]
mov dword [rax], 0x1e
mov eax, 0xfffffffc
jmp 0x1400837c4
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 8]
mov ecx, dword [rsp + 0x7c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x7c], eax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0x18]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0xc]
add eax, dword [rsp + 0x7c]
mov rcx, qword [rsp + 0x110]
mov dword [rcx + 0xc], eax
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0x1c]
add eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x110]
mov dword [rcx + 0x1c], eax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x1c]
add eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x1c], eax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 8], 0
je 0x140083700
cmp dword [rsp + 0x5c], 0
je 0x140083700
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x10], 0
je 0x1400836ad
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x110]
mov rcx, qword [rcx + 0x10]
sub rcx, rax
mov rax, rcx
mov r8d, dword [rsp + 0x5c]
mov rdx, rax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007c0f0
mov dword [rsp + 0x84], eax
jmp 0x1400836df
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x110]
mov rcx, qword [rcx + 0x10]
sub rcx, rax
mov rax, rcx
mov r8d, dword [rsp + 0x5c]
mov rdx, rax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x18]
call fcn.14007b8f0
mov dword [rsp + 0x84], eax
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x84]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x110]
mov ecx, dword [rsp + 0x84]
mov dword [rax + 0x4c], ecx
mov rax, qword [rsp + 0x38]
cmp dword [rax + 4], 0
je 0x140083718
mov dword [rsp + 0xa0], 0x40
jmp 0x140083723
mov dword [rsp + 0xa0], 0
mov rax, qword [rsp + 0x38]
cmp dword [rax], 0xb
jne 0x14008373a
mov dword [rsp + 0xa4], Ordinal_133
jmp 0x140083745
mov dword [rsp + 0xa4], 0
mov rax, qword [rsp + 0x38]
cmp dword [rax], 0x13
je 0x140083766
mov rax, qword [rsp + 0x38]
cmp dword [rax], 0xe
je 0x140083766
mov dword [rsp + 0xa8], 0
jmp 0x140083771
mov dword [rsp + 0xa8], 0x100
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x44]
add eax, dword [rsp + 0xa0]
add eax, dword [rsp + 0xa4]
add eax, dword [rsp + 0xa8]
mov rcx, qword [rsp + 0x110]
mov dword [rcx + 0x48], eax
cmp dword [rsp + 0x7c], 0
jne 0x1400837a7
cmp dword [rsp + 0x5c], 0
je 0x1400837b1
cmp dword [rsp + 0x118], 4
jne 0x1400837c0
cmp dword [rsp + 0x6c], 0
jne 0x1400837c0
mov dword [rsp + 0x6c], 0xfffffffb
mov eax, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.140138320
add rsp, 0xf8
pop rdi
pop rsi
ret