Function at 0x14018edd0
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x968
movdqa xmmword [rsp + 0x950], xmm6
mov r14, rcx
mov r15d, dword [rdx + 0x44]
mov r12, qword [rdx + 0x20]
test r15, r15
je 0x14018ee69
mov rsi, r9
mov rbx, r8
mov rdi, rdx
mov r13, qword [rdx + 0x28]
cmp r13, r15
jbe 0x14018ee1a
cmp byte [r12 + r15], 0xbf
jg 0x14018ee20
jmp 0x1401908bc
jne 0x1401908bc
cmp r15d, 4
jne 0x14018ee49
lea rdx, [0x141a97588]
mov rcx, r12
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14018ef48
lea rdx, [0x141a810d0]
jmp 0x14018ee56
cmp r15d, 5
jne 0x14018ee69
lea rdx, [0x141a9758c]
mov rcx, r12
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14018ef48
mov qword [rsp + 0x6f8], r12
mov qword [rsp + 0x700], r15
lea rax, [rsp + 0x6f8]
mov qword [rsp + 0x240], rax
lea rax, [0x14005a740]
mov qword [rsp + 0x248], rax
lea rax, [0x141a81b38]
mov qword [rsp + 0x330], rax
mov qword [rsp + 0x338], 2
mov qword [rsp + 0x350], 0
lea rax, [rsp + 0x240]
mov qword [rsp + 0x340], rax
mov qword [rsp + 0x348], 1
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x330]
call fcn.140036e80
movabs rax, 0x8000000000000000
mov qword [r14], rax
movdqu xmm0, xmmword [rsp + 0xb0]
movdqu xmmword [r14 + 8], xmm0
mov rcx, qword [rsp + 0xc0]
mov qword [r14 + 0x18], rcx
mov qword [r14 + 0x20], rax
mov qword [r14 + 0x78], 0
mov byte [r14 + 0x88], 1
movaps xmm6, xmmword [rsp + 0x950]
add rsp, 0x968
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r13, r15
jbe 0x14018ef59
cmp byte [r12 + r15], 0xbf
jg 0x14018ef5f
jmp 0x1401908bc
jne 0x1401908bc
cmp r15d, 5
jne 0x14018ef7f
lea rdx, [0x141a9758c]
mov rcx, r12
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14018f00e
mov rax, qword [rdi + 0x98]
cmp byte [rax + 0xcc], 0
je 0x14018f00e
movzx eax, byte [0x141ada129]
mov edx, 0x33
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401908bc
movups xmm0, xmmword [0x141a81118]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [0x141a81108]
movups xmmword [rax + 0x10], xmm0
movdqu xmm0, xmmword [0x141a810f8]
movdqu xmmword [rax], xmm0
mov dword [rax + 0x2f], 0x74657320
movabs rcx, 0x8000000000000000
mov qword [r14], rcx
mov qword [r14 + 8], 0x33
mov qword [r14 + 0x10], rax
mov qword [r14 + 0x18], 0x33
mov qword [r14 + 0x20], rcx
mov qword [r14 + 0x78], 0
mov byte [r14 + 0x88], 3
jmp 0x14018ef2c
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x50], rsi
movabs r13, 0x8000000000000000
cmp byte [rsp + 0x9d0], 0
je 0x14018fd9b
mov qword [rsp + 0x38], r14
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0xa0]
mov rbx, qword [rax + 0x98]
lea rdx, [rcx + 0x38]
mov qword [rsp + 0x78], rdx
movzx edx, word [rax + 0x40]
mov word [rsp + 0x4e], dx
movzx edx, word [rax + 0x42]
mov word [rsp + 0x4c], dx
movzx edx, byte [rax + 0x58]
mov byte [rsp + 0x36], dl
mov edx, dword [rax + 0x4c]
mov r8d, dword [rax + 0x50]
mov rax, qword [rsp + 0x40]
add rax, rdx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x1e8], r8
mov qword [rsp + 0x1f0], rdx
sub r8, rdx
mov qword [rsp + 0x1e0], r8
mov qword [rsp + 0xa0], rcx
lea rax, [rcx + 0x60]
mov qword [rsp + 0x208], rax
pcmpeqd xmm6, xmm6
mov qword [rsp + 0x1f8], rbx
mov qword [rsp + 0x200], r15
cmp qword [rbx + 0x28], r13
je 0x14018f31e
mov rdi, qword [rbx + 0x30]
mov rsi, qword [rbx + 0x38]
test rsi, rsi
je 0x14018f110
js 0x1401908bc
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, rsi
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov rbp, rsi
jmp 0x14018f117
mov eax, 1
xor ebp, ebp
mov qword [rsp + 0x238], rax
mov rcx, rax
mov rdx, rdi
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov eax, dword [rbx + 0x70]
mov dword [rsp + 0x9c], eax
mov rax, r13
mov qword [rsp + 0x90], r13
cmp qword [rbx + 0x40], r13
je 0x14018f1b8
mov rdi, qword [rbx + 0x48]
mov r8, qword [rbx + 0x50]
test r8, r8
je 0x14018f18e
js 0x1401908bc
mov r14, rsi
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r8
mov rsi, r8
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov r8, rsi
mov rcx, rsi
mov qword [rsp + 0x90], r8
mov rsi, r14
jmp 0x14018f19d
mov eax, 1
xor ecx, ecx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x220], rax
mov rcx, rax
mov rdx, rdi
mov qword [rsp + 0x228], r8
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0xa8], rsi
mov rax, r13
mov qword [rsp + 0x88], r13
cmp qword [rbx + 0x58], r13
mov rsi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x68]
je 0x14018f245
mov rdi, qword [rbx + 0x60]
mov r8, qword [rbx + 0x68]
test r8, r8
je 0x14018f21b
js 0x1401908bc
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r8
mov r12, r8
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov r8, r12
mov rcx, r12
mov qword [rsp + 0x88], r8
jmp 0x14018f22a
mov eax, 1
xor ecx, ecx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x210], rax
mov rcx, rax
mov rdx, rdi
mov qword [rsp + 0x218], r8
call sub.msvcrt.dll_memcpy
movzx eax, byte [rbx + 0x74]
mov byte [rsp + 0x37], al
mov bx, 1
cmp word [rsp + 0x4e], 0
jne 0x14018f33b
cmp r14, r15
jbe 0x14018f26e
cmp byte [rsi + r15], 0xbf
jg 0x14018f274
jmp 0x1401908bc
jne 0x1401908bc
cmp r15d, 4
jne 0x14018f292
mov rcx, rsi
lea rdx, [0x141a97588]
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14018f30b
jmp 0x14018f2ae
cmp r15d, 2
jne 0x14018f2b8
mov rcx, rsi
lea rdx, [0x141a97591]
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14018f30b
mov r12w, 0x50
jmp 0x14018f341
cmp r15d, 5
jne 0x14018f2d6
mov rcx, rsi
lea rdx, [0x141a9758c]
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14018f30b
jmp 0x14018f317
cmp r15d, 3
jne 0x14018f30b
mov rcx, rsi
lea rdx, [0x141a97593]
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14018f317
mov rcx, rsi
lea rdx, [0x141a97596]
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
sete al
jmp 0x14018f30d
xor eax, eax
movzx ebx, al
mov r12w, 0x15
jmp 0x14018f341
mov r12w, 0x1bb
jmp 0x14018f341
mov rbp, r13
mov rsi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x68]
mov bx, 1
cmp word [rsp + 0x4e], 0
je 0x14018f25d
movzx r12d, word [rsp + 0x4c]
cmp r14, r15
mov word [rsp + 0x70], r12w
jbe 0x14018f36d
cmp byte [rsi + r15], 0xbf
jle 0x1401908bc
mov rdi, r15
test r15, r15
jne 0x14018f376
mov r14d, 1
mov rdi, r15
xor r12d, r12d
jmp 0x14018f396
mov rdi, r14
jne 0x1401908bc
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, rdi
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov r14, rax
mov r12, rdi
mov rcx, r14
mov rdx, rsi
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov r13d, 1
cmp byte [rsp + 0x36], 0
je 0x14018f3ef
mov rax, qword [rsp + 0x1f0]
mov rcx, qword [rsp + 0x1e8]
cmp eax, ecx
mov rsi, qword [rsp + 0xa8]
ja 0x1401908bc
test rax, rax
je 0x14018f40b
cmp qword [rsp + 0x68], rax
jbe 0x14018f405
mov rax, qword [rsp + 0x80]
cmp byte [rax], 0xc0
jge 0x14018f40b
jmp 0x1401908bc
mov r15, rbp
xor ebp, ebp
lea rdx, [0x141a98490]
mov rsi, qword [rsp + 0xa8]
jmp 0x14018f46c
jne 0x1401908bc
test rcx, rcx
je 0x14018f42d
cmp qword [rsp + 0x68], rcx
jbe 0x14018f427
mov rax, qword [rsp + 0x40]
cmp byte [rax + rcx], 0xbf
jg 0x14018f42d
jmp 0x1401908bc
jne 0x1401908bc
mov r15, rbp
mov rbp, qword [rsp + 0x1e0]
test rbp, rbp
je 0x14018f462
js 0x1401908bc
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, rbp
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov r13, rax
jmp 0x14018f464
xor ebp, ebp
mov rdx, qword [rsp + 0x80]
mov rcx, r13
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x460], r12
mov qword [rsp + 0x468], r14
mov qword [rsp + 0x470], rdi
mov qword [rsp + 0x478], rbp
mov qword [rsp + 0x480], r13
mov qword [rsp + 0x488], rbp
mov word [rsp + 0x4e0], bx
movzx eax, word [rsp + 0x70]
mov word [rsp + 0x4e2], ax
mov qword [rsp + 0x490], r15
mov rax, qword [rsp + 0x238]
mov qword [rsp + 0x498], rax
mov qword [rsp + 0x4a0], rsi
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x4a8], rax
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x4b0], rax
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x4b8], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x4c0], rax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x4c8], rax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x4d0], rax
mov eax, dword [rsp + 0x9c]
mov dword [rsp + 0x4d8], eax
movzx eax, byte [rsp + 0x37]
mov byte [rsp + 0x4dc], al
xor eax, eax
mov rcx, qword [rsp + 0x78]
mov dl, 1
lock cmpxchg byte [rcx], dl
jne 0x14018f6f9
lea r12, [rsp + 0xb0]
mov rcx, r12
lea rdx, [rsp + 0x460]
call fcn.1401b4030
lea rcx, [rsp + 0x330]
mov rdx, qword [rsp + 0x208]
mov r8, r12
call fcn.1401b2f30
mov rsi, qword [rsp + 0x330]
mov r8d, 0x98
lea rdi, [rsp + 0x660]
mov rcx, rdi
lea rdx, [rsp + 0x338]
call sub.msvcrt.dll_memcpy
test rsi, rsi
movabs r13, 0x8000000000000000
mov r15, qword [rsp + 0x200]
je 0x14018f5eb
mov qword [rsp + 0x658], 1
lea rsi, [r13 + 1]
jmp 0x14018fbd7
mov qword [rsp + 0x658], 0
mov r8d, 0x98
lea rcx, [rsp + 0x7d0]
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x858]
mov rsi, qword [rax - 8]
test rsi, rsi
je 0x1401908bc
dec rsi
mov qword [rax - 8], rsi
mov rcx, qword [rax - 0x10]
add rcx, rsi
mov rdx, qword [rax - 0x20]
mov rax, qword [rax - 0x18]
cmp rcx, rdx
mov r8d, 0
cmovae r8, rdx
sub rcx, r8
imul rcx, rcx, 0xe8
mov rdx, qword [rax + rcx]
mov qword [rsp + 0x230], rdx
mov rbp, qword [rax + rcx + 8]
lea rdx, [rax + rcx]
add rdx, 0x10
mov r8d, 0xd8
mov rcx, r12
call sub.msvcrt.dll_memcpy
lea rax, [r13 + 1]
cmp rbp, rax
je 0x1401908bc
mov r8d, 0xd8
lea rcx, [rsp + 0x330]
mov rdx, r12
call sub.msvcrt.dll_memcpy
test rsi, rsi
jne 0x14018f815
mov rdx, qword [rsp + 0x6e8]
mov rax, qword [rsp + 0x6f0]
mov rcx, qword [rax]
mov r8, rcx
sub r8, rdx
sar r8, 3
movabs r9, 0xcf3cf3cf3cf3cf3d
imul r8, r9
lea r9, [r8 - 0x10]
and r9, qword [rax + 8]
movdqu xmm0, xmmword [rcx + r9]
pcmpeqb xmm0, xmm6
psllw xmm0, 7
pmovmskb r10d, xmm0
test r10d, r10d
je 0x14018f708
bsr r10w, r10w
xor r10d, 0xf
jmp 0x14018f70d
mov rcx, qword [rsp + 0x78]
call fcn.14015d680
jmp 0x14018f569
mov r10w, 0x10
mov r12, rsi
movdqu xmm0, xmmword [rcx + r8]
pcmpeqb xmm0, xmm6
pmovmskb r11d, xmm0
or r11d, 0x10000
tzcnt r11d, r11d
add r10d, r11d
mov r11b, pe_nt_image_headers64
cmp r10w, 0xf
ja 0x14018f73f
inc qword [rax + 0x10]
mov r11b, 0xff
mov rsi, qword [rsp + 0x660]
mov byte [rcx + r8], r11b
mov byte [rcx + r9 + 0x10], r11b
dec qword [rax + 0x18]
add rdx, 0xffffffffffffff58
mov r8d, 0xa8
lea rcx, [rsp + 0x240]
call sub.msvcrt.dll_memcpy
cmp rsi, r13
je 0x14018f77b
mov rcx, rdi
call fcn.1401995a0
mov rsi, qword [rsp + 0x2c8]
mov rdi, qword [rsp + 0x2d0]
mov rbx, qword [rsp + 0x2d8]
mov r14, qword [rsp + 0x2e0]
lea rcx, [rsp + 0x240]
call fcn.1401995a0
test r14, r14
je 0x14018f7cf
cmp rbx, rsi
mov eax, 0
cmovae rax, rsi
sub rbx, rax
mov rax, rsi
sub rax, rbx
mov r13, r14
sub r13, rax
jbe 0x14018f7d6
mov r14, rsi
jmp 0x14018f7dc
xor ebx, ebx
xor r14d, r14d
jmp 0x14018f7d9
add r14, rbx
xor r13d, r13d
imul rcx, rbx, 0xe8
add rcx, rdi
sub r14, rbx
mov rdx, r14
call fcn.1401994d0
mov rcx, rdi
mov rdx, r13
call fcn.1401994d0
test rsi, rsi
mov rsi, r12
je 0x14018f815
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rdi
call fcn.1401cdfe4
mov qword [rsp + 0x1d0], rbp
mov rdx, qword [rsp + 0xa0]
mov r9, qword [rdx + 0x40]
mov r8, qword [rdx + 0x58]
test r8, r8
mov qword [rsp + 0x1c8], rsi
je 0x14018f860
mov rbp, qword [rdx + 0x50]
cmp rbp, r9
mov eax, 0
cmovae rax, r9
sub rbp, rax
mov rax, r9
sub rax, rbp
mov rcx, r8
sub rcx, rax
jbe 0x14018f867
mov r10, r9
jmp 0x14018f86d
xor ebp, ebp
xor r10d, r10d
jmp 0x14018f86b
lea r10, [r8 + rbp]
xor ecx, ecx
mov qword [rsp + 0x1d8], r9
mov qword [rsp + 0x70], r8
mov r14, qword [rdx + 0x48]
mov rax, rbp
shl rax, 7
lea rsi, [rax + rbp*8]
lea rdx, [r14 + rsi]
mov rax, r10
shl rax, 7
mov qword [rsp + 0x1c0], r10
lea rbx, [rax + r10*8]
lea rax, [r14 + rbx]
sub rax, rdx
movabs rdx, 0xf0f0f0f0f0f0f0f1
mul rdx
mov rdi, rdx
shr rdi, 7
add rdi, rcx
test rcx, rcx
je 0x14018f901
mov rax, rcx
shl rax, 7
lea r12, [rax + rcx*8]
lea r13, [r14 - 0x88]
nop word cs:[rax + rax]
lea rcx, [r12 + r13]
lea rdx, [rsp + 0x460]
call fcn.14019ff70
dec rdi
test al, al
jne 0x14018f95c
add r12, 0xffffffffffffff78
jne 0x14018f8e0
cmp rbp, qword [rsp + 0x1c0]
movabs r13, 0x8000000000000000
mov r12, qword [rsp + 0x70]
je 0x1401908bc
dec rdi
sub rsi, rbx
lea rbp, [r14 + rbx]
add rbp, 0xffffffffffffff78
nop
mov rcx, rbp
lea rdx, [rsp + 0x460]
call fcn.14019ff70
test al, al
jne 0x14018f96b
dec rdi
add rbp, 0xffffffffffffff78
add rsi, 0x88
jne 0x14018f930
jmp 0x1401908bc
movabs r13, 0x8000000000000000
mov r12, qword [rsp + 0x70]
cmp r12, rdi
jbe 0x1401908bc
mov rbx, qword [rsp + 0xa0]
mov r8, qword [rbx + 0x50]
lea r9, [r8 + rdi]
mov rcx, qword [rsp + 0x1d8]
cmp r9, rcx
mov eax, 0
cmovae rax, rcx
sub r9, rax
mov rax, r9
shl rax, 7
lea rax, [rax + r9*8]
mov rsi, qword [r14 + rax]
movups xmm0, xmmword [r14 + rax + 0x78]
movaps xmmword [rsp + 0x640], xmm0
movups xmm0, xmmword [r14 + rax + 0x68]
movaps xmmword [rsp + 0x630], xmm0
movups xmm0, xmmword [r14 + rax + 0x58]
movaps xmmword [rsp + 0x620], xmm0
movups xmm0, xmmword [r14 + rax + 0x48]
movaps xmmword [rsp + 0x610], xmm0
movups xmm0, xmmword [r14 + rax + 0x38]
movaps xmmword [rsp + 0x600], xmm0
movups xmm0, xmmword [r14 + rax + 0x28]
movaps xmmword [rsp + 0x5f0], xmm0
movups xmm0, xmmword [r14 + rax + 0x18]
movaps xmmword [rsp + 0x5e0], xmm0
movups xmm0, xmmword [r14 + rax + 8]
movaps xmmword [rsp + 0x5d0], xmm0
mov rax, rdi
not rax
add rax, r12
cmp rax, rdi
jae 0x14018fa49
lea rdx, [r9 + 1]
cmp rdx, rcx
mov edx, 0
cmovae rdx, rcx
neg rdx
lea r8, [r9 + rdx]
inc r8
mov qword [rsp + 0x20], rax
jmp 0x14018fa6c
lea rax, [r8 + 1]
cmp rax, rcx
mov eax, 0
cmovae rax, rcx
neg rax
lea r9, [r8 + rax]
inc r9
mov qword [rbx + 0x50], r9
mov qword [rsp + 0x20], rdi
mov rdx, r14
call fcn.1401990b0
dec r12
mov qword [rbx + 0x58], r12
movaps xmm0, xmmword [rsp + 0x640]
movaps xmmword [rsp + 0x5c0], xmm0
movaps xmm0, xmmword [rsp + 0x630]
movaps xmmword [rsp + 0x5b0], xmm0
movaps xmm0, xmmword [rsp + 0x620]
movaps xmmword [rsp + 0x5a0], xmm0
movaps xmm0, xmmword [rsp + 0x610]
movaps xmmword [rsp + 0x590], xmm0
movaps xmm0, xmmword [rsp + 0x5d0]
movaps xmm1, xmmword [rsp + 0x5e0]
movaps xmm2, xmmword [rsp + 0x5f0]
movaps xmm3, xmmword [rsp + 0x600]
movaps xmmword [rsp + 0x580], xmm3
movaps xmmword [rsp + 0x570], xmm2
movaps xmmword [rsp + 0x560], xmm1
movaps xmmword [rsp + 0x550], xmm0
cmp rsi, r13
je 0x1401908bc
mov qword [rsp + 0x240], rsi
movaps xmm0, xmmword [rsp + 0x5c0]
lea rax, [rsp + 0x248]
movups xmmword [rax + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x5b0]
movups xmmword [rax + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x5a0]
movups xmmword [rax + 0x50], xmm0
movaps xmm0, xmmword [rsp + 0x590]
movups xmmword [rax + 0x40], xmm0
movdqa xmm0, xmmword [rsp + 0x550]
movaps xmm1, xmmword [rsp + 0x560]
movaps xmm2, xmmword [rsp + 0x570]
movaps xmm3, xmmword [rsp + 0x580]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
lea rcx, [rsp + 0x240]
call fcn.1401995a0
mov r8d, 0xd8
lea rcx, [rsp + 0x6f8]
lea rdx, [rsp + 0x330]
call sub.msvcrt.dll_memcpy
cmp qword [rsp + 0x1c8], 0
je 0x14018fbbf
cmp qword [rsp + 0x7d0], r13
je 0x14018fbbf
lea rcx, [rsp + 0x7d0]
call fcn.1401995a0
lea rdi, [rsp + 0x660]
lea r12, [rsp + 0xb0]
mov rsi, qword [rsp + 0x1d0]
xor eax, eax
mov rcx, qword [rsp + 0x78]
xchg byte [rcx], al
cmp al, 2
jne 0x14018fbee
mov rcx, qword [rsp + 0x78]
call fcn.1401f3560
cmp qword [rsp + 0x658], 0
je 0x14018fc01
mov rcx, rdi
call fcn.1401995a0
lea rcx, [rsp + 0x460]
call fcn.1401995a0
lea rbx, [r13 + 1]
cmp rsi, rbx
je 0x14018fd96
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x248], rsi
mov r8d, 0xd8
lea rcx, [rsp + 0x250]
lea rdx, [rsp + 0x6f8]
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x318]
mov rax, qword [rsp + 0x320]
call qword [rax + 0xb8]
test rax, rax
je 0x14018fd6b
mov r14, rax
mov byte [rsp + 0xb0], 0
mov dword [rsp + 0x330], 1
mov rcx, qword [rax]
mov edx, 0x8004667e
lea r8, [rsp + 0x330]
call sub.ws2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x14018ff7f
mov rcx, qword [r14]
mov rdx, r12
mov r8d, 1
mov r9d, 2
call sub.ws2_32.dll_recv
cmp eax, 0xffffffff
je 0x14018fccb
movsxd rdi, eax
mov sil, 1
xor r12d, r12d
mov bpl, 1
jmp 0x14018fd10
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x14018fce4
mov sil, 1
xor edi, edi
mov bpl, 1
xor r12d, r12d
jmp 0x14018fd10
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov rcx, rdi
call fcn.14015a510
cmp al, 0xd
jne 0x14018fd04
mov bpl, 1
xor esi, esi
xor r12d, r12d
jmp 0x14018fd10
mov r12b, 1
xor ebp, ebp
nop dword [rax]
mov dword [rsp + 0x330], 0
mov rcx, qword [r14]
mov edx, 0x8004667e
lea r8, [rsp + 0x330]
call sub.ws2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x14018ff88
test r12b, r12b
jne 0x14018fff8
test sil, sil
je 0x14018fd6b
lea rcx, [rsp + 0x240]
call fcn.140191db0
mov rbx, qword [rsp + 0x1f8]
cmp qword [rbx + 0x28], r13
jne 0x14018f0de
jmp 0x14018f31e
mov rsi, qword [rsp + 0x38]
lea rcx, [rsi + 8]
lea rdx, [rsp + 0x240]
mov r8d, 0xe8
call sub.msvcrt.dll_memcpy
mov byte [rsi + 0xf0], 1
mov qword [rsi], rbx
jmp 0x14018ef2c
mov r14, qword [rsp + 0x38]
cmp qword [rsp + 0x68], r15
jbe 0x14018fdb3
mov rax, qword [rsp + 0x40]
cmp byte [rax + r15], 0xbf
jg 0x14018fdb9
jmp 0x1401908bc
jne 0x1401908bc
cmp r15d, 4
jne 0x14018fe22
lea rdx, [0x141a97588]
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14018ff03
lea rdx, [0x141a810d0]
mov rcx, rsi
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14018fe47
mov rdx, qword [rsp + 0x60]
mov eax, dword [rdx + 0x44]
mov rcx, qword [rdx + 0x20]
test rax, rax
je 0x1401905b3
cmp qword [rdx + 0x28], rax
jbe 0x1401905ad
cmp byte [rcx + rax], 0xbf
jg 0x1401905b3
jmp 0x1401908bc
cmp r15d, 5
mov rsi, qword [rsp + 0x40]
jne 0x14018fe47
lea rdx, [0x141a9758c]
mov rcx, rsi
mov r8, r15
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x140190064
mov qword [rsp + 0x6f8], rsi
mov qword [rsp + 0x700], r15
lea rax, [rsp + 0x6f8]
mov qword [rsp + 0x240], rax
lea rax, [0x14005a740]
mov qword [rsp + 0x248], rax
lea rax, [0x141a810e8]
mov qword [rsp + 0x330], rax
mov qword [rsp + 0x338], 1
mov qword [rsp + 0x350], 0
lea rax, [rsp + 0x240]
mov qword [rsp + 0x340], rax
mov qword [rsp + 0x348], 1
lea rdi, [rsp + 0xb8]
lea rdx, [rsp + 0x330]
mov rcx, rdi
call fcn.140036e80
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0x128], 0
mov byte [rsp + 0x138], 1
lea rcx, [rsp + 0x330]
mov r8d, 0xe8
mov rdx, rdi
jmp 0x14019068e
mov rbx, qword [rsp + 0x60]
cmp word [rbx + 0x40], 0
mov bp, 0x50
je 0x14018ff17
movzx ebp, word [rbx + 0x42]
movzx eax, byte [0x141ada129]
mov edx, 4
xor ecx, ecx
call fcn.14014fee0
test rax, rax
mov rsi, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
je 0x1401908bc
mov rdi, rax
mov qword [rsp + 0x38], r14
mov dword [rax], 0x70747468
test rsi, rsi
je 0x1401901d1
js 0x1401908bc
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, rsi
call fcn.14014fee0
mov r14, rax
mov r12, rsi
test rax, rax
jne 0x1401901da
jmp 0x1401908bc
call sub.ws2_32.dll_WSAGetLastError
mov ebx, eax
jmp 0x14018ffed
call sub.ws2_32.dll_WSAGetLastError
mov ebx, eax
test bpl, bpl
jne 0x14018ffed
mov eax, edi
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x14018ffed
test rax, rax
je 0x14018ffed
lea r14, [rdi - 1]
mov r15, qword [rdi - 1]
mov rsi, qword [rdi + 7]
mov rcx, r15
call qword [rsi]
cmp qword [rsi + 8], 0
je 0x14018ffdc
cmp qword [rsi + 0x10], 0x11
jb 0x14018ffcb
mov r15, qword [r15 - 8]
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r15
call fcn.1401cdfe4
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r14
call fcn.1401cdfe4
shl rbx, 0x20
or rbx, 2
mov rdi, rbx
mov qword [rsp + 0x338], r13
mov qword [rsp + 0x350], r13
mov qword [rsp + 0x3a8], 0
mov byte [rsp + 0x3b8], 8
mov qword [rsp + 0x330], r13
lea rbx, [rsp + 0xb0]
lea rdx, [rsp + 0x330]
mov rcx, rbx
mov r8, rdi
call fcn.1401a5580
mov r8d, 0x110
mov rcx, qword [rsp + 0x38]
mov rdx, rbx
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x240]
call fcn.140191db0
jmp 0x14018ef2c
mov r12, qword [rsp + 0x60]
cmp word [r12 + 0x40], 0
mov bp, 0x1bb
je 0x14019007c
movzx ebp, word [r12 + 0x42]
mov word [rsp + 0x20], bp
lea rcx, [rsp + 0x330]
mov rdx, r12
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
call fcn.140197080
mov rbx, qword [rsp + 0x330]
mov rdi, qword [rsp + 0x338]
lea rsi, [r13 + 1]
movups xmm0, xmmword [rsp + 0x340]
movaps xmmword [rsp + 0x440], xmm0
movdqu xmm0, xmmword [rsp + 0x350]
movdqa xmmword [rsp + 0x450], xmm0
cmp rbx, rsi
jne 0x140190560
mov qword [rsp + 0x38], r14
mov rax, qword [r12 + 0x98]
mov r14, qword [rax + 0xb8]
mov rbx, qword [rax + 0xc0]
mov r15, qword [rbx + 0x10]
movzx eax, byte [0x141ada129]
mov edx, 8
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov r13, r12
dec r15
and r15, 0xfffffffffffffff0
lea rdx, [r14 + r15]
add rdx, 0x10
mov qword [rax], rdi
lea rcx, [0x141a818a0]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x330]
mov r8, qword [rsp + 0x58]
mov r15, qword [rsp + 0x50]
mov r9, r15
call qword [rbx + 0x18]
mov rdi, qword [rsp + 0x330]
mov rbx, qword [rsp + 0x338]
mov r12, qword [rsp + 0x340]
cmp rdi, rsi
jne 0x140190730
movzx eax, byte [0x141ada129]
mov edx, 5
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov rdi, rax
mov byte [rax + 4], 0x73
mov dword [rax], 0x70747468
test r15, r15
je 0x140190768
js 0x1401908bc
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r15
call fcn.14014fee0
mov r14, rax
mov rsi, r15
test rax, rax
jne 0x140190770
jmp 0x1401908bc
mov r14d, 1
xor r12d, r12d
mov rcx, r14
mov rdx, r15
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov r13, qword [rbx + 0xa0]
jmp 0x1401901f3
pause
mov rax, qword [r13 + 8]
nop word [rax + rax]
cmp rax, 0xffffffffffffffff
je 0x1401901f1
test rax, rax
js 0x1401908bc
lea rcx, [rax + 1]
lock cmpxchg qword [r13 + 8], rcx
jne 0x140190200
mov word [rsp + 0x20], bp
lea rcx, [rsp + 0x330]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov r9, rsi
call fcn.140197080
mov qword [rsp + 0x240], r13
mov qword [rsp + 0x248], 4
mov qword [rsp + 0x250], rdi
mov qword [rsp + 0x258], 4
mov qword [rsp + 0x260], r12
mov qword [rsp + 0x268], r14
mov qword [rsp + 0x270], rsi
movabs rcx, 0x8000000000000000
mov qword [rsp + 0x278], rcx
movups xmm0, xmmword [rsp + 0x4e8]
movups xmm1, xmmword [rsp + 0x4f8]
movups xmm2, xmmword [rsp + 0x508]
movups xmm3, xmmword [rsp + 0x518]
movups xmmword [rsp + 0x280], xmm0
movups xmmword [rsp + 0x290], xmm1
movups xmmword [rsp + 0x2a0], xmm2
movups xmmword [rsp + 0x2b0], xmm3
mov rax, qword [rsp + 0x528]
mov qword [rsp + 0x2c0], rax
mov word [rsp + 0x2c8], 1
mov word [rsp + 0x2ca], bp
lea r15, [rcx + 1]
cmp qword [rsp + 0x330], r15
jne 0x1401904b3
mov rsi, qword [rsp + 0x338]
movzx eax, byte [0x141ada129]
mov edx, 8
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov r15, rax
mov qword [rax], rsi
movzx eax, byte [0x141ada129]
mov edx, 0x2000
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401908bc
lea rcx, [rsp + 0x340]
lea rbx, [rsp + 0xb8]
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xc0], 4
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd0], 4
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xe0], r14
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0xe8], rdx
movabs rdi, 0x8000000000000000
mov qword [rsp + 0xf0], rdi
movups xmm0, xmmword [rsp + 0x4e8]
movups xmm1, xmmword [rsp + 0x4f8]
movups xmm2, xmmword [rsp + 0x508]
movups xmm3, xmmword [rsp + 0x518]
movups xmmword [rsp + 0xf8], xmm0
movups xmmword [rsp + 0x108], xmm1
movups xmmword [rsp + 0x118], xmm2
movups xmmword [rsp + 0x128], xmm3
mov rdx, qword [rsp + 0x528]
mov qword [rsp + 0x138], rdx
mov word [rsp + 0x140], 1
mov word [rsp + 0x142], bp
movdqu xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movdqu xmmword [rsp + 0x148], xmm0
movups xmmword [rsp + 0x158], xmm1
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], 0x2000
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x178], xmm0
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x190], r15
lea rax, [0x141a818a0]
mov qword [rsp + 0x198], rax
lea rcx, [rsp + 0x330]
mov r8d, 0xe8
mov rdx, rbx
call sub.msvcrt.dll_memcpy
movdqu xmm0, xmmword [rsp + 0x1a0]
movups xmm1, xmmword [rsp + 0x1b0]
movdqa xmmword [rsp + 0x240], xmm0
movaps xmmword [rsp + 0x250], xmm1
mov r14, qword [rsp + 0x38]
jmp 0x14019053b
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x330]
mov r8d, 0x110
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x240]
call fcn.140195ce0
mov rsi, qword [rsp + 0xb0]
lea rbx, [rsp + 0xb8]
lea rcx, [rsp + 0x330]
mov r8d, 0xe8
mov rdx, rbx
call sub.msvcrt.dll_memcpy
movdqu xmm0, xmmword [rsp + 0x1a0]
movups xmm1, xmmword [rsp + 0x1b0]
movdqa xmmword [rsp + 0x240], xmm0
movaps xmmword [rsp + 0x250], xmm1
cmp rsi, r15
mov r14, qword [rsp + 0x38]
movabs rdi, 0x8000000000000000
jne 0x1401906b8
lea rcx, [r14 + 8]
mov r8d, 0xe8
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov byte [r14 + 0xf0], 0
inc rdi
mov qword [r14], rdi
jmp 0x14018ef2c
lea rdx, [rsp + 0x360]
lea rcx, [rsp + 0xe0]
mov r8d, 0xe0
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0xb8], rdi
movdqa xmm0, xmmword [rsp + 0x440]
movaps xmm1, xmmword [rsp + 0x450]
movdqu xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xd0], xmm1
mov r13, rbx
jmp 0x140190678
jne 0x1401908bc
mov qword [rsp + 0x6f8], rcx
mov qword [rsp + 0x700], rax
lea rax, [rsp + 0x6f8]
mov qword [rsp + 0x658], rax
lea rax, [0x14005a740]
mov qword [rsp + 0x660], rax
lea rax, [0x141a81b38]
mov qword [rsp + 0x330], rax
mov qword [rsp + 0x338], 2
mov qword [rsp + 0x350], 0
lea rax, [rsp + 0x658]
mov qword [rsp + 0x340], rax
mov qword [rsp + 0x348], 1
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x330]
call fcn.140036e80
movdqu xmm0, xmmword [rsp + 0x240]
movdqu xmmword [rsp + 0xb8], xmm0
mov rax, qword [rsp + 0x250]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0x128], 0
mov byte [rsp + 0x138], 1
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x330]
mov r8d, 0xe8
call sub.msvcrt.dll_memcpy
movdqu xmm0, xmmword [rsp + 0x1a0]
movups xmm1, xmmword [rsp + 0x1b0]
movdqa xmmword [rsp + 0x240], xmm0
movaps xmmword [rsp + 0x250], xmm1
mov rsi, r13
lea rdi, [rsp + 0x868]
lea rdx, [rsp + 0x330]
mov r8d, 0xe8
mov rcx, rdi
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x240]
movaps xmm1, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0x530], xmm0
movaps xmmword [rsp + 0x540], xmm1
mov qword [r14], rsi
lea rcx, [r14 + 8]
mov r8d, 0xe8
mov rdx, rdi
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x530]
movaps xmm1, xmmword [rsp + 0x540]
movups xmmword [r14 + 0xf0], xmm0
movups xmmword [r14 + 0x100], xmm1
jmp 0x14018ef2c
lea rdx, [rsp + 0x348]
lea rcx, [rsp + 0xc8]
mov r8d, 0xf8
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], r12
mov r13, rdi
mov r14, qword [rsp + 0x38]
jmp 0x140190678
mov r14d, 1
xor esi, esi
mov rcx, r14
mov rdx, qword [rsp + 0x58]
mov r8, r15
call sub.msvcrt.dll_memcpy
mov r13, qword [r13 + 0xa0]
jmp 0x14019078b
pause
mov rax, qword [r13 + 8]
cmp rax, 0xffffffffffffffff
je 0x140190789
test rax, rax
js 0x1401908bc
lea rcx, [rax + 1]
lock cmpxchg qword [r13 + 8], rcx
jne 0x14019078f
movzx eax, byte [0x141ada129]
mov edx, 0x10
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401908bc
mov r15, rax
mov qword [rax], rbx
mov qword [rax + 8], r12
movzx eax, byte [0x141ada129]
mov edx, 0x2000
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401908bc
lea rbx, [rsp + 0xb8]
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xc0], 5
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd0], 5
mov qword [rsp + 0xd8], rsi
mov qword [rsp + 0xe0], r14
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0xe8], rcx
movabs rdi, 0x8000000000000000
mov qword [rsp + 0xf0], rdi
mov word [rsp + 0x140], 1
mov word [rsp + 0x142], bp
movaps xmm0, xmmword [rsp + 0x440]
movaps xmm1, xmmword [rsp + 0x450]
movups xmmword [rsp + 0x148], xmm0
movups xmmword [rsp + 0x158], xmm1
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], 0x2000
xorps xmm0, xmm0
movups xmmword [rsp + 0x178], xmm0
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x190], r15
lea rax, [0x141a819e8]
jmp 0x140190469
ud2