Function at 0x1800d4b00
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x388
mov rsi, rdx
mov qword [rsp + 0x68], rcx
movzx eax, byte [rdx + 0x378]
test eax, eax
mov qword [rsp + 0x168], r8
je 0x1800d4b58
cmp eax, 3
jne case.0x1800d5195.1
mov r12, r8
lea rbx, [rsi + 0x1f0]
movzx eax, byte [rsi + 0x280]
lea rcx, [0x1800d5ee8]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rcx
mov qword [rsi + 0x20], 0
mov qword [rsi + 0x40], rax
xor r12d, r12d
mov rcx, qword [rax + 0x10]
mov r15, r12
cmp rcx, qword [rax + 0x18]
jne 0x1800d4b9d
test r15, r15
je 0x1800d59c0
mov rdi, qword [rsi + 0x28]
mov r12, qword [rsi + 0x30]
mov r14, qword [rsi + 0x38]
jmp 0x1800d5b74
lea rdx, [rcx + 0x20]
mov qword [rax + 0x10], rdx
movzx eax, word [rcx]
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x36e], xmm0
movups xmm0, xmmword [rcx + 2]
movaps xmmword [rsp + 0x360], xmm0
cmp ax, 2
je 0x1800d59b3
mov word [rsi + 0x48], ax
movaps xmm0, xmmword [rsp + 0x360]
movups xmmword [rsi + 0x4a], xmm0
movups xmm0, xmmword [rsp + 0x36e]
movups xmmword [rsi + 0x58], xmm0
mov rcx, qword [rsi + 0x10]
mov rbx, qword [rsi + 0x18]
mov r12, qword [rcx + 0x20]
mov edi, dword [rcx + 0x28]
test ax, ax
mov eax, 2
mov ebp, 0x17
cmove ebp, eax
mov rax, qword [0x1801fe948]
cmp rax, 3
jne 0x1800d5964
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov ecx, ebp
mov edx, 1
mov r8d, 6
xor r9d, r9d
call qword [sym.imp.ws2_32.dll_WSASocketW]
cmp rax, 0xffffffffffffffff
je 0x1800d5b7e
mov r14, rax
mov dword [rsp + 0x78], 1
lea r8, [rsp + 0x78]
mov rcx, rax
mov edx, 0x8004667e
call qword [sym.imp.ws2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
je 0x1800d5c41
mov ebp, dword [rbx + 0x48]
cmp ebp, 0x3b9aca00
je 0x1800d4d51
mov r15, qword [rbx + 0x40]
mov dword [rsp + 0x78], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x78]
mov rcx, r14
mov edx, 0xffff
mov r8d, 8
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x1800d4d4c
mov ecx, 0x3e8
mov rax, r15
mul rcx
mov ecx, ebp
imul rcx, rcx, 0x431bde83
shr rcx, 0x32
add rcx, rax
adc rdx, 0
mov eax, 0xffffffff
cmp rcx, rax
cmovae rcx, rax
xor eax, eax
neg rdx
sbb eax, eax
or eax, ecx
mov dword [rsp + 0x78], 1
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x170], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
lea rax, [rsp + 0x170]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x78]
mov rcx, r14
mov edx, 0x98000004
mov r9d, 0xc
call qword [sym.imp.ws2_32.dll_WSAIoctl]
cmp eax, 0xffffffff
jne 0x1800d4d51
call sub.kernel32.dll_GetLastError
cmp word [rsi + 0x48], 0
je 0x1800d4dde
cmp byte [rbx + 0x56], 0
je 0x1800d4e5c
movups xmm0, xmmword [rbx + 0x57]
movabs rax, 0x1c00000000
mov qword [rsp + 0xf4], rax
xorps xmm1, xmm1
movups xmmword [rsp + 0xe4], xmm1
movups xmmword [rsp + 0xd4], xmm1
movups xmmword [rsp + 0xc4], xmm1
movups xmmword [rsp + 0xb4], xmm1
movups xmmword [rsp + 0xa4], xmm1
movups xmmword [rsp + 0x94], xmm1
movups xmmword [rsp + 0x80], xmm0
mov dword [rsp + 0x90], 0
mov qword [rsp + 0x78], 0x17
lea rdx, [rsp + 0x78]
mov rcx, r14
mov r8d, 0x1c
jmp 0x1800d4fba
cmp byte [rbx + 0x51], 0
je 0x1800d4f18
mov eax, dword [rbx + 0x52]
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xd0], xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0xf0], 0
mov dword [rsp + 0x78], 2
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0xf8], 0x10
lea rdx, [rsp + 0x78]
mov rcx, r14
mov r8d, 0x10
jmp 0x1800d4fba
xorps xmm0, xmm0
movups xmmword [rsp + 0x174], xmm0
mov word [rsp + 0x170], 1
movzx eax, word [rsp + 0x182]
mov word [rsp + 0x60], ax
movups xmm1, xmmword [rsp + 0x172]
movaps xmmword [rsp + 0x50], xmm1
mov rax, qword [rsp + 0x52]
mov ecx, dword [rsp + 0x5a]
movzx edx, word [rsp + 0x5e]
movzx r8d, word [rsp + 0x60]
movups xmmword [rsp + 0x94], xmm0
movups xmmword [rsp + 0xa4], xmm0
movups xmmword [rsp + 0xb4], xmm0
movups xmmword [rsp + 0xc4], xmm0
movups xmmword [rsp + 0xd4], xmm0
movups xmmword [rsp + 0xe4], xmm0
mov dword [rsp + 0xf4], 0
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x88], ecx
mov word [rsp + 0x8c], dx
mov word [rsp + 0x8e], r8w
mov dword [rsp + 0x90], 0
mov r8d, 0x1c
xor eax, eax
mov dx, 0x17
xor ecx, ecx
jmp 0x1800d4f9c
mov qword [rsp + 0x170], 0
movups xmm0, xmmword [rsp + 0x172]
movaps xmmword [rsp + 0x50], xmm0
movzx eax, word [rsp + 0x182]
mov word [rsp + 0x60], ax
movzx eax, word [rsp + 0x54]
rol ax, 8
mov ecx, dword [rsp + 0x50]
xorps xmm0, xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xd0], xmm0
movups xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], 0
mov r8d, 0x10
mov dx, 2
mov word [rsp + 0x78], dx
mov word [rsp + 0x7a], ax
mov dword [rsp + 0x7c], ecx
mov dword [rsp + 0xf8], r8d
lea rdx, [rsp + 0x78]
mov rcx, r14
call qword [sym.imp.ws2_32.dll_bind]
xor r13d, r13d
test eax, eax
je 0x1800d4fd7
call sub.kernel32.dll_GetLastError
mov r13d, eax
shl r13, 0x20
or r13, 2
test r13, r13
jne 0x1800d5cfe
cmp byte [rbx + 0x68], 0
je 0x1800d5014
mov dword [rsp + 0x78], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x78]
mov rcx, r14
mov edx, 0xffff
mov r8d, 4
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x1800d505f
cmp qword [rbx], 0
je 0x1800d506a
mov rax, qword [rbx + 8]
mov rcx, rax
shr rcx, 0x20
xor edx, edx
neg rcx
sbb edx, edx
or edx, eax
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x78]
mov rcx, r14
mov edx, 0xffff
mov r8d, 0x1001
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x1800d506a
call sub.kernel32.dll_GetLastError
jmp 0x1800d506a
call sub.kernel32.dll_GetLastError
cmp qword [rbx], 0
jne 0x1800d501a
cmp qword [rbx + 0x10], 0
je case.default.0x1800d5195
mov rax, qword [rbx + 0x18]
mov rcx, rax
shr rcx, 0x20
xor edx, edx
neg rcx
sbb edx, edx
or edx, eax
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x78]
mov rcx, r14
mov edx, 0xffff
mov r8d, 0x1002
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne case.default.0x1800d5195
call sub.kernel32.dll_GetLastError
movups xmm0, xmmword [rsi + 0x48]
movups xmm1, xmmword [rsi + 0x58]
lea r15, [rsi + 0x68]
mov qword [rsi + 0x68], r12
mov dword [rsi + 0x70], edi
movups xmmword [rsi + 0x78], xmm0
movups xmmword [rsi + 0x88], xmm1
mov qword [rsi + 0x98], r14
movups xmm0, xmmword [rsp + 0x1e0]
movups xmm1, xmmword [rsp + 0x1f0]
movups xmm2, xmmword [rsp + 0x200]
movups xmm3, xmmword [rsp + 0x210]
movups xmmword [rsi + 0xa0], xmm0
movups xmmword [rsi + 0xb0], xmm1
movups xmmword [rsi + 0xc0], xmm2
movups xmmword [rsi + 0xd0], xmm3
movups xmm0, xmmword [rsp + 0x220]
movups xmmword [rsi + 0xe0], xmm0
mov byte [rsi + 0xf0], 0
mov eax, dword [rsp + 0x71]
mov ecx, dword [rsp + 0x74]
mov dword [rsi + 0xf4], ecx
mov dword [rsi + 0xf1], eax
mov byte [rsi + 0xf8], 0
lea rcx, [rsi + 0xf9]
lea rdx, [rsp + 0x260]
mov r8d, 0xf7
call fcn.180167370
lea rbx, [rsi + 0x1f0]
mov r8d, 0x188
mov rcx, rbx
mov rdx, r15
call fcn.180167370
movzx eax, byte [rsi + 0x280]
lea rcx, [0x1800d5ee8]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
mov r12, qword [rsp + 0x168]
jmp rax
mov ebp, dword [rsi + 0x1f8]
cmp ebp, 0x3b9aca00
jne 0x1800d5295
movups xmm0, xmmword [rsi + 0x270]
movups xmmword [rsi + 0x2f8], xmm0
movups xmm0, xmmword [rsi + 0x260]
movups xmmword [rsi + 0x2e8], xmm0
movups xmm0, xmmword [rsi + 0x250]
movups xmmword [rsi + 0x2d8], xmm0
movups xmm0, xmmword [rsi + 0x240]
movups xmmword [rsi + 0x2c8], xmm0
movups xmm0, xmmword [rsi + 0x200]
movups xmm1, xmmword [rsi + 0x210]
movups xmm2, xmmword [rsi + 0x220]
movups xmm3, xmmword [rsi + 0x230]
movups xmmword [rsi + 0x2b8], xmm3
movups xmmword [rsi + 0x2a8], xmm2
movups xmmword [rsi + 0x298], xmm1
movups xmmword [rsi + 0x288], xmm0
lea rdx, [rsi + 0x288]
lea rcx, [rsp + 0x260]
mov r8, r12
call fcn.1800d65d0
mov rbp, qword [rsp + 0x260]
cmp rbp, 3
je 0x1800d5998
mov r15, qword [rsp + 0x268]
mov rdi, qword [rsp + 0x270]
mov r12, qword [rsp + 0x278]
mov r14, qword [rsp + 0x280]
movzx eax, byte [rsi + 0x300]
cmp eax, 3
je 0x1800d539a
test eax, eax
jne 0x1800d5796
mov rcx, qword [rsi + 0x2a8]
call qword [sym.imp.ws2_32.dll_closesocket]
cmp ebp, 2
je 0x1800d579b
jmp 0x1800d574d
mov rdi, qword [rsi + 0x1f0]
movups xmm0, xmmword [rsi + 0x270]
movaps xmmword [rsp + 0x250], xmm0
movups xmm0, xmmword [rsi + 0x260]
movaps xmmword [rsp + 0x240], xmm0
movups xmm0, xmmword [rsi + 0x250]
movaps xmmword [rsp + 0x230], xmm0
movups xmm0, xmmword [rsi + 0x240]
movaps xmmword [rsp + 0x220], xmm0
movups xmm0, xmmword [rsi + 0x200]
movups xmm1, xmmword [rsi + 0x210]
movups xmm2, xmmword [rsi + 0x220]
movups xmm3, xmmword [rsi + 0x230]
movaps xmmword [rsp + 0x210], xmm3
movaps xmmword [rsp + 0x200], xmm2
movaps xmmword [rsp + 0x1f0], xmm1
movaps xmmword [rsp + 0x1e0], xmm0
mov qword [rsp + 0x260], 0
lea rcx, [rsp + 0x260]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1800d5e9a
mov r15, qword [rsp + 0x260]
mov rcx, qword [0x1801fe9d0]
test rcx, rcx
jne 0x1800d5384
mov qword [rsp + 0x260], 0
lea rcx, [rsp + 0x260]
call qword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1800d5e9a
mov rcx, qword [rsp + 0x260]
mov qword [0x1801fe9d0], rcx
test rcx, rcx
je case.0x1800d5195.1
mov rax, r15
or rax, rcx
shr rax, 0x20
je 0x1800d53b4
mov rax, r15
xor edx, edx
div rcx
jmp 0x1800d53bb
lea rcx, [rsi + 0x2b8]
call fcn.1800d64c0
cmp ebp, 2
je 0x1800d579b
jmp 0x1800d574d
mov eax, r15d
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1800d53df
xor edx, edx
div rcx
mov rcx, rax
jmp 0x1800d53e5
xor edx, edx
div ecx
mov ecx, eax
add rcx, r8
mov r9, rcx
shr r9, 9
movabs r10, 0x44b82fa09b5a53
mov rax, r9
mul r10
mov r8, rdx
shr r8, 0xb
add r8, rdi
jb 0x1800d5432
mov rax, r9
mul r10
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
add ebp, ecx
cmp ebp, 0x3b9aca00
jb 0x1800d5441
add ebp, 0xc4653600
inc r8
jne 0x1800d5441
lea rcx, [rsp + 0x170]
call fcn.18010cb30
jmp 0x1800d546c
mov eax, ebp
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub ebp, eax
lea rcx, [rsp + 0x170]
mov rdx, r8
mov r8d, ebp
call fcn.18010c120
movups xmm0, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0x2c0], xmm0
movups xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0x2b0], xmm0
movups xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x2a0], xmm0
movups xmm0, xmmword [rsp + 0x170]
movups xmm1, xmmword [rsp + 0x180]
movups xmm2, xmmword [rsp + 0x190]
movups xmm3, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x290], xmm3
movaps xmmword [rsp + 0x280], xmm2
movaps xmmword [rsp + 0x270], xmm1
movaps xmmword [rsp + 0x260], xmm0
movaps xmm0, xmmword [rsp + 0x1e0]
movaps xmm1, xmmword [rsp + 0x1f0]
movaps xmm2, xmmword [rsp + 0x200]
movaps xmm3, xmmword [rsp + 0x210]
movaps xmmword [rsp + 0x2d0], xmm0
movaps xmmword [rsp + 0x2e0], xmm1
movaps xmmword [rsp + 0x2f0], xmm2
movaps xmmword [rsp + 0x300], xmm3
movaps xmm0, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0x310], xmm0
movaps xmm0, xmmword [rsp + 0x230]
movaps xmmword [rsp + 0x320], xmm0
movaps xmm0, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0x330], xmm0
movaps xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0x340], xmm0
lea r15, [rsp + 0x78]
lea rdx, [rsp + 0x260]
mov r8d, 0xf0
mov rcx, r15
call fcn.180167370
lea rcx, [rsi + 0x288]
mov r8d, 0xf0
mov rdx, r15
call fcn.180167370
lea r13, [rsi + 0x288]
lea r15, [rsi + 0x2f8]
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x110]
cmp eax, 1
je 0x1800d55ec
xor edi, edi
test eax, eax
jne 0x1800d5617
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rdi, qword [rcx + rax*8]
lea rcx, [rdi + 0xc0]
lea rdx, [0x1801026d0]
call fcn.1800f56d0
mov byte [rdi + 0x110], 1
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x10c], 0
setne cl
cmp byte [rax + 0x10d], 0
sete dil
and dil, cl
lea rcx, [rsp + 0x260]
mov rdx, r15
mov r8, r12
call fcn.1800d65d0
mov rbp, qword [rsp + 0x260]
cmp rbp, 3
jne 0x1800d576e
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x110]
cmp eax, 1
je 0x1800d568d
test eax, eax
jne 0x1800d56c7
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov r14, qword [rcx + rax*8]
lea rcx, [r14 + 0xc0]
lea rdx, [0x1801026d0]
call fcn.1800f56d0
mov byte [r14 + 0x110], 1
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx r14d, byte [rax + 0x10c]
test r14b, r14b
sete cl
cmp byte [rax + 0x10d], 0
setne al
or al, cl
or dil, al
cmp dil, 1
jne 0x1800d58d1
mov rdx, qword [r12]
mov rcx, r13
call fcn.18010c330
test al, al
jne 0x1800d5960
mov rcx, r13
call fcn.1800d6550
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d570f
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e89
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x18
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e89
mov r15, rax
mov qword [rax], 1
lea rax, [0x1801c19b8]
mov qword [r15 + 8], rax
mov byte [r15 + 0x10], 0x16
inc r15
mov ebp, 2
cmp ebp, 2
je 0x1800d579b
mov byte [rsi + 0x280], 1
mov rcx, rbx
call fcn.1800d5f00
mov r8, qword [rsi + 0x20]
test r8, r8
jne 0x1800d5de1
jmp 0x1800d5e2f
mov r15, qword [rsp + 0x268]
mov rdi, qword [rsp + 0x270]
mov r12, qword [rsp + 0x278]
mov r14, qword [rsp + 0x280]
mov rcx, r13
call fcn.1800d6550
cmp ebp, 2
jne 0x1800d574d
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d57c7
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e78
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x11
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e78
mov r12, rax
movups xmm0, xmmword [0x1801c232d]
movups xmmword [rax], xmm0
mov byte [rax + 0x10], 0x72
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d581b
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e67
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e67
mov r13, rax
mov qword [rax], r15
mov byte [rsi + 0x280], 1
mov rcx, rbx
call fcn.1800d5f00
mov r8, qword [rsi + 0x20]
test r8, r8
je 0x1800d589c
cmp qword [rsi + 0x28], 0
je 0x1800d5866
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov r14, qword [rsi + 0x30]
test r14, r14
je 0x1800d589c
mov rdi, qword [rsi + 0x38]
mov rcx, r14
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x1800d589c
cmp qword [rdi + 0x10], 0x11
jb 0x1800d588a
mov r14, qword [r14 - 8]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsi + 0x20], r12
mov qword [rsi + 0x28], 0x11
mov qword [rsi + 0x30], r13
lea rax, [0x1801c1850]
mov qword [rsi + 0x38], rax
mov rax, qword [rsi + 0x40]
mov rcx, qword [rax + 0x10]
mov r15, r12
cmp rcx, qword [rax + 0x18]
jne 0x1800d4b9d
jmp 0x1800d4b83
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rdi, qword [rcx + rax*8]
mov byte [rdi + 0x10c], 0
mov rdx, qword [r12]
mov rcx, r13
call fcn.18010c330
mov ebp, eax
movzx eax, byte [rdi + 0x110]
cmp eax, 1
je 0x1800d5936
test eax, eax
jne 0x1800d5957
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rdi, qword [rcx + rax*8]
lea rcx, [rdi + 0xc0]
lea rdx, [0x1801026d0]
call fcn.1800f56d0
mov byte [rdi + 0x110], 1
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov byte [rax + 0x10c], r14b
mov byte [rax + 0x10d], 0
test bpl, bpl
je 0x1800d56db
mov al, 3
jmp 0x1800d599a
mov byte [rsp + 0x170], 1
lea rax, [rsp + 0x170]
mov qword [rsp + 0x78], rax
lea rcx, [0x1801fe948]
lea r9, [0x1801c40f0]
lea r8, [rsp + 0x78]
xor edx, edx
call fcn.18016f3c0
jmp 0x1800d4c16
mov al, 4
mov byte [rsi + 0x280], al
mov rax, qword [rsp + 0x68]
mov qword [rax], 3
mov al, 3
jmp 0x1800d5e49
mov r15, qword [rsi + 0x20]
test r15, r15
jne 0x1800d4b8c
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d59ec
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5ed6
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x13
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5ed6
mov rbx, rax
movups xmm0, xmmword [0x1801c231a]
movups xmmword [rax], xmm0
mov dword [rax + 0xf], 0x656c6261
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5a43
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e89
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x18
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e89
mov r14, rax
mov qword [rax], rbx
mov qword [rax + 8], 0x13
mov qword [rax + 0x10], 0x13
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5a9c
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e89
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x18
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e89
mov rbx, rax
mov qword [rax], r14
lea rax, fcn.18005a590
mov qword [rbx + 8], rax
mov byte [rbx + 0x10], 7
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5af4
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e78
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x11
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e78
mov r15, rax
movups xmm0, xmmword [0x1801c232d]
movups xmmword [rax], xmm0
mov byte [rax + 0x10], 0x72
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5b48
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e67
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e67
mov r12, rax
inc rbx
mov qword [rax], rbx
lea r14, [0x1801c1850]
mov edi, 0x11
mov ebp, 2
jmp 0x1800d5e2f
call sub.kernel32.dll_GetLastError
mov ebx, eax
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5bb1
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5ea3
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0xe
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5ea3
mov r15, rax
movabs rax, 0x726f727265206e65
mov qword [r15 + 6], rax
movabs rax, 0x6e65706f20706374
mov qword [r15], rax
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5c12
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e67
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e67
mov r12, rax
shl rbx, 0x20
or rbx, 2
mov qword [rax], rbx
mov edi, 0xe
jmp 0x1800d5dac
call sub.kernel32.dll_GetLastError
mov ebx, eax
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5c74
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5eb4
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x19
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5eb4
mov r15, rax
movups xmm0, xmmword [0x1801b09d9]
movups xmmword [rax + 9], xmm0
movups xmm0, xmmword [str.tcp_set_nonblocking_errortcp_bind_local_error]
movups xmmword [rax], xmm0
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5ccf
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e67
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e67
mov r12, rax
shl rbx, 0x20
or rbx, 2
mov qword [rax], rbx
mov edi, 0x19
jmp 0x1800d5da3
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5d2a
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5ec5
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x14
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5ec5
mov r15, rax
movups xmm0, xmmword [0x1801b09e9]
movups xmmword [rax], xmm0
mov dword [rax + 0x10], 0x726f7272
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x1800d5d81
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800d5e67
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800d5e67
mov r12, rax
mov qword [rax], r13
mov edi, 0x14
mov rcx, r14
call qword [sym.imp.ws2_32.dll_closesocket]
mov qword [rsi + 0x78], r15
mov qword [rsi + 0x80], rdi
mov qword [rsi + 0x88], r12
lea r14, [0x1801af9f0]
mov qword [rsi + 0x90], r14
mov dword [rsi + 0x70], 0x3b9aca01
mov ebp, 2
mov r8, qword [rsi + 0x20]
test r8, r8
je 0x1800d5e2f
cmp qword [rsi + 0x28], 0
je 0x1800d5df7
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rbx, qword [rsi + 0x30]
test rbx, rbx
je 0x1800d5e2f
mov r13, qword [rsi + 0x38]
mov rcx, rbx
call qword [r13]
cmp qword [r13 + 8], 0
je 0x1800d5e2f
cmp qword [r13 + 0x10], 0x11
jb 0x1800d5e1d
mov rbx, qword [rbx - 8]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x68]
mov qword [rax], rbp
mov qword [rax + 8], r15
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], r12
mov qword [rax + 0x20], r14
mov al, 1
mov byte [rsi + 0x378], al
add rsp, 0x388
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
ud2
mov ecx, 8
mov edx, 8
call fcn.180169390
ud2
mov ecx, 1
mov edx, 0x11
call fcn.180169390
ud2
mov ecx, 8
mov edx, 0x18
call fcn.180169390
ud2
call sub.kernel32.dll_GetLastError
ud2
mov ecx, 1
mov edx, 0xe
call fcn.180169390
ud2
mov ecx, 1
mov edx, 0x19
call fcn.180169390
ud2
mov ecx, 1
mov edx, 0x14
call fcn.180169390
ud2
mov ecx, 1
mov edx, 0x13
call fcn.180169390
ud2