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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x8b8]
sub rsp, 0x9b8
movzx r8d, byte [rcx + 0x408]
lea r12, [rcx + 0xd7c0]
mov r15d, dword [rbp + 0x930]
xorps xmm0, xmm0
movsxd rsi, edx
mov r11d, 1
mov rdi, r9
mov qword [rbp - 0x70], rsi
mov r10, rcx
mov qword [rbp - 0x78], r11
mov r9, rsi
lea rax, [rsi + 1]
sar rax, 1
add rax, rcx
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movzx r13d, byte [rax + r8*4 + 0xd0ad]
mov rax, rsi
shl rax, 7
add r12, rax
mov dword [rbp + 0x910], r13d
xor eax, eax
mov qword [rsp + 0x60], r12
mov qword [rbp - 0x80], rax
mov r14d, eax
mov qword [rsp + 0x58], rax
mov dword [rbp - 0x50], eax
lea r8d, [rax + 0x40]
mov eax, VarI4FromDisp
cmp r15d, eax
cmovg r15d, eax
test r15d, r15d
jle 0x14001d9c3
mov eax, dword [rcx + 0xda24]
lea r11, [0x140000000]
mov esi, dword [rbp + 0x908]
mov r12d, dword [rbp + 0x908]
mov ebx, dword [rbp + 0x908]
mov dword [rsp + 0x30], eax
nop word [rax + rax]
lea rcx, [r15 + r15]
mov edx, r15d
movsx eax, word [rcx + rdi]
mov r9d, eax
shr r9d, 0x1f
mov dword [rsp + 0x44], r9d
neg r9d
mov dword [rbp + 0x930], r9d
lea r14d, [r9 + rax]
movzx eax, byte [r15 + r11 + 0xc3790]
mov r11, qword [rbp + 0x928]
xor r14d, r9d
movsx r11d, word [r11 + rax*2]
mov dword [rsp + 0x34], r11d
cmp r14d, 1
jg 0x14001d25d
test r14d, r14d
jne 0x14001cb6e
cmp edx, 1
jbe 0x14001cb68
cmp word [rdi + r15*2 - 2], 0
jne 0x14001cb68
dec r15d
cmp r15d, 1
jg 0x14001cb56
xor eax, eax
mov ecx, eax
jmp 0x14001cb80
add r11d, r9d
xor r11d, r9d
mov ecx, r11d
mov dword [rsp + 0x34], r11d
imul ecx, r11d
mov rax, qword [rsp + 0x60]
mov r9d, r8d
and r8d, 0x3f
movsxd rdi, r15d
sub r9d, r15d
mov r11d, dword [rbp + r8*4 - 0x50]
movzx edx, word [rax + rdi*2]
add r11d, ecx
mov dword [rsp + 0x3c], edx
mov dword [rsp + 0x40], r11d
mov dword [rbp + rdi*4 - 0x50], r11d
test edx, edx
je 0x14001cc3e
lea r11, [0x140000000]
cmp edx, 4
jae 0x14001cbc5
lea ecx, [rdx - 1]
jmp 0x14001cc0e
mov ecx, edx
shr ecx, 1
or ecx, edx
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
shr eax, 1
inc eax
imul ecx, eax, 0x77cb531
shr rcx, 0x1b
movzx ecx, byte [rcx + r11 + 0xc3a30]
inc ecx
lea eax, [rcx - 3]
cmp eax, 3
mov eax, 6
cmovg ecx, eax
movsxd rdx, ecx
movzx ecx, byte [rdi + r11 + 0xd1ce0]
add ecx, r13d
shl rcx, 5
add rcx, rdx
movzx edx, byte [rdx + r11 + 0xc3770]
add edx, dword [r10 + rcx*8 + 0xda2c]
mov dword [rsp + 0x28], edx
xor r10d, r10d
jmp 0x14001cc46
xor r10d, r10d
mov dword [rsp + 0x28], r10d
lea eax, [r15 + 0x3e]
mov r13d, 0xffffffff
sar eax, 6
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x2c], r13d
nop dword [rax]
mov rax, qword [rbp - 0x80]
mov ecx, r8d
sar rax, cl
test al, 1
je 0x14001cfee
lea rdx, [0x140000000]
mov r10d, r8d
shl r10, 5
lea r11d, [r9 + 0x37]
sar r11d, 6
movzx eax, byte [rbp + r10 + 0xc0]
mov ecx, eax
mov dword [rsp + 0x78], eax
and ecx, 1
shr eax, 1
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x6c], eax
movsxd rax, r15d
movzx ecx, byte [rax + rdx + 0xd1ce0]
add ecx, dword [rbp + 0x910]
shl rcx, 5
mov qword [rsp + 0x48], rcx
movsxd rax, r11d
add rcx, rax
movzx eax, byte [rax + rdx + 0xc3777]
mov rdx, qword [rbp + 0x900]
mov edx, dword [rdx + rcx*8 + 0xda64]
mov ecx, dword [rbp + r10 + 0xc4]
add edx, eax
add edx, dword [rsp + 0x28]
mov eax, dword [rbp + r8*4 - 0x50]
mov dword [rsp + 0x74], eax
mov eax, edx
imul eax, dword [rsp + 0x30]
add ecx, eax
sub ecx, dword [rbp + r8*4 - 0x50]
add ecx, dword [rsp + 0x40]
cmp ecx, r13d
ja 0x14001cd33
mov esi, dword [rbp + r10 + 0xc8]
lea eax, [r8*2 + 1]
add esi, edx
mov dword [rsp + 0x24], eax
xor eax, eax
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0x20], eax
lea r12d, [r11 + 7]
lea ebx, [r9 - 1]
mov r13d, ecx
mov eax, dword [rsp + 0x68]
add eax, 0x10
cmp r9d, eax
jge 0x14001cfa1
mov rcx, qword [rbp + 0x918]
lea rax, [r8 + r8]
mov qword [rbp - 0x68], rax
movzx eax, word [rax + rcx]
mov r11d, eax
movsx edi, ax
shr r11d, 0xf
mov r10d, r11d
neg r10d
add edi, r10d
xor edi, r10d
mov dword [rsp + 0x38], edi
cmp edi, 2
jg 0x14001ce7a
cmp r9d, 6
jge 0x14001cd85
lea r13d, [r9 + 0x16]
jmp 0x14001cdac
lea edx, [r9 + 0x36]
mov eax, r10d
sar edx, 6
mov r11d, r9d
lea ecx, [rdx + 2]
shl eax, cl
lea r13d, [rdx + 0x1c]
sub r11d, eax
lea eax, [rdx*4]
sub r11d, eax
sub r11d, 6
mov rcx, qword [rbp + 0x928]
lea rdi, [0x140000000]
movzx eax, byte [r8 + rdi + 0xc3790]
movsx edx, word [rcx + rax*2]
mov rax, qword [rbp - 0x68]
add edx, r10d
mov rcx, qword [rbp + 0x920]
xor edx, r10d
movzx eax, word [rax + rcx]
mov rcx, qword [rsp + 0x48]
sub edx, eax
imul edx, edx
movsxd rax, r13d
add rcx, rax
movzx eax, byte [rax + rdi + 0xc3770]
mov rdi, qword [rbp + 0x900]
mov ecx, dword [rdi + rcx*8 + 0xda2c]
mov edi, dword [rsp + 0x38]
add ecx, eax
add ecx, dword [rsp + 0x28]
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x50], ecx
mov ecx, dword [rsp + 0x6c]
lea rax, [rax + rcx*2]
mov ecx, dword [rsp + 0x50]
shl rax, 4
mov qword [rbp - 0x60], rax
mov eax, ecx
imul eax, dword [rsp + 0x30]
add edx, eax
mov rax, qword [rbp - 0x60]
add edx, dword [rbp + rax + 0xb4]
sub edx, dword [rsp + 0x74]
add edx, dword [rsp + 0x40]
cmp edx, dword [rsp + 0x2c]
ja 0x14001ce75
mov esi, dword [rbp + rax + 0xb8]
mov r12d, r13d
add esi, ecx
mov dword [rsp + 0x2c], edx
lea eax, [r10 + 1]
mov ebx, r11d
xor eax, r10d
mov r13d, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x24], eax
jmp 0x14001ce7a
mov r13d, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x68]
add eax, 2
cmp r9d, eax
jge 0x14001cfa1
lea eax, [rdi - 2]
cmp eax, 2
ja 0x14001cfa1
mov rcx, qword [rsp + 0x48]
lea r11, [0x140000000]
mov edx, r9d
sar edx, 1
movsxd rax, edx
add rcx, rax
movzx eax, byte [rax + r11 + 0xc378e]
mov r11, qword [rbp + 0x900]
mov ecx, dword [r11 + rcx*8 + 0xdb1c]
xor r11d, r11d
add ecx, eax
lea eax, [r10 + rdi]
add ecx, dword [rsp + 0x28]
xor eax, r10d
mov rdi, qword [rbp + 0x920]
cmp eax, 2
mov dword [rsp + 0x38], ecx
mov ecx, r11d
setg cl
lea r11, [0x140000000]
movzx eax, byte [r8 + r11 + 0xc3790]
mov r11, qword [rbp + 0x928]
mov dword [rsp + 0x50], ecx
add ecx, 2
mov dword [rsp + 0x48], ecx
movsx r11d, word [r11 + rax*2]
mov rax, qword [rbp - 0x68]
add r11d, r10d
xor r11d, r10d
movzx eax, word [rax + rdi]
imul eax, ecx
mov ecx, dword [rsp + 0x6c]
sub r11d, eax
mov eax, dword [rsp + 0x70]
imul r11d, r11d
lea rdi, [rax + rcx*2]
mov ecx, dword [rsp + 0x38]
add rdi, rdi
mov eax, ecx
imul eax, dword [rsp + 0x30]
add r11d, eax
add r11d, dword [rbp + rdi*8 + 0xb4]
sub r11d, dword [rsp + 0x74]
add r11d, dword [rsp + 0x40]
cmp r11d, r13d
ja 0x14001cfa1
mov esi, dword [rbp + rdi*8 + 0xb8]
lea r12d, [rdx + 0x1e]
mov ebx, dword [rsp + 0x50]
add esi, ecx
lea ecx, [rdx + 1]
mov dword [rsp + 0x2c], r11d
mov eax, r10d
mov r13d, r11d
shl eax, cl
mov ecx, edx
shl ebx, cl
sub ebx, eax
lea eax, [r9 - 1]
sar eax, 1
add ebx, eax
mov eax, dword [rsp + 0x48]
add eax, r10d
xor eax, r10d
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x24], eax
mov r9, qword [rbp - 0x78]
mov ecx, r8d
mov rax, r9
sar rax, cl
test al, 1
je 0x14001d0fc
xor r10d, r10d
mov ecx, r8d
mov eax, r10d
shl rcx, 5
movzx r8d, byte [rbp + rcx + 0xb0]
shr r8d, 1
cmp dword [rbp + rcx + 0xbc], 0
setne al
sub r8d, eax
and r8d, 0x3f
je 0x14001cff4
mov r9d, r8d
sub r9d, r15d
jmp 0x14001cc60
mov r9, qword [rbp - 0x78]
jmp 0x14001cfb9
mov eax, dword [rsp + 0x3c]
cmp eax, 0xfff
jae 0x14001d097
lea ecx, [rax + 1]
lea r8, [0x140000000]
cmp ecx, 4
jb 0x14001d05c
mov eax, ecx
shr eax, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or eax, ecx
shr eax, 1
inc eax
imul ecx, eax, 0x77cb531
mov eax, r10d
shr rcx, 0x1b
movzx edx, byte [rcx + r8 + 0xc3a30]
mov ecx, 3
add edx, 0xfffffffe
sub ecx, edx
cmp edx, 3
cmovg eax, ecx
add eax, 3
add eax, edx
movsxd rdx, eax
movsxd rdi, r15d
movzx eax, byte [rdx + r8 + 0xc3770]
movzx ecx, byte [rdi + r8 + 0xd1ce0]
add ecx, dword [rbp + 0x910]
shl rcx, 5
add rcx, rdx
mov rdx, qword [rbp + 0x900]
mov edx, dword [rdx + rcx*8 + 0xda2c]
add edx, eax
sub edx, dword [rsp + 0x28]
jmp 0x14001d0c1
lea rax, [0x140000000]
movsxd rdi, r15d
movzx ecx, byte [rdi + rax + 0xd1ce0]
add ecx, dword [rbp + 0x910]
mov rax, qword [rbp + 0x900]
shl rcx, 8
mov edx, dword [rcx + rax + 0xda2c]
mov ecx, edx
imul ecx, dword [rsp + 0x30]
add ecx, dword [rsp + 0x40]
cmp ecx, r13d
jbe 0x14001d0e0
cmp r12d, 8
jg 0x14001d0ff
lea eax, [rbx + r15]
cmp eax, 0x3f
jne 0x14001d0ff
mov eax, r10d
mov dword [rsp + 0x24], r10d
mov dword [rsp + 0x20], eax
mov r8d, r10d
mov r12d, r10d
mov ebx, r10d
mov r13d, ecx
mov esi, edx
jmp 0x14001d108
movsxd rdi, r15d
mov eax, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x24]
bts r9, rdi
mov r11, rdi
shl r11, 5
test r14d, r14d
mov qword [rbp - 0x78], r9
mov r14, qword [rsp + 0x58]
mov byte [rbp + r11 + 0xb0], r8b
mov byte [rbp + r11 + 0xb1], r12b
mov word [rbp + r11 + 0xb2], bx
mov dword [rbp + r11 + 0xb4], r13d
mov dword [rbp + r11 + 0xb8], esi
mov dword [rbp + r11 + 0xbc], eax
je 0x14001d983
mov ecx, dword [rsp + 0x44]
lea r9, [0x140000000]
mov rax, qword [rbp + 0x920]
lea r8d, [rcx + 9]
movzx r10d, word [rax + rdi*2]
lea rdx, [rcx + 9]
movzx eax, byte [rdx + r9 + 0xc3770]
movzx ecx, byte [rdi + r9 + 0xd1ce0]
add ecx, dword [rbp + 0x910]
sub r10d, dword [rsp + 0x34]
shl rcx, 5
add rcx, rdx
mov byte [rbp + r11 + 0xc1], r8b
mov rdx, qword [rbp + 0x900]
mov r9d, dword [rdx + rcx*8 + 0xda2c]
lea edx, [r15 + 1]
add r9d, eax
and edx, 0x3f
add r9d, dword [rsp + 0x28]
mov ecx, edx
mov rax, r14
sar rax, cl
and eax, 1
mov ecx, eax
movzx eax, dl
add al, al
add al, cl
mov byte [rbp + r11 + 0xc0], al
xor eax, eax
mov word [rbp + r11 + 0xc2], ax
lea r8, [rcx + rdx*2]
add r8, r8
cmp r15d, dword [rbp + 0x940]
cmovge eax, dword [rsp + 0x30]
imul eax, r9d
imul r10d, r10d
add eax, dword [rbp + r8*8 + 0xb4]
lea edx, [rax + r10]
mov dword [rbp + r11 + 0xc4], edx
mov ecx, dword [rbp + r8*8 + 0xb8]
add ecx, r9d
mov r9, qword [rbp - 0x80]
bts r9, rdi
mov dword [rbp + r11 + 0xc8], ecx
mov ecx, dword [rbp + 0x930]
mov qword [rbp - 0x80], r9
lea eax, [rcx + 1]
xor eax, ecx
mov ecx, r15d
mov dword [rbp + r11 + 0xcc], eax
xor eax, eax
cmp edx, r13d
setb al
shl rax, cl
or r14, rax
jmp 0x14001d97e
mov rax, qword [rsp + 0x60]
xor r12d, r12d
cmp r15d, dword [rbp + 0x940]
mov esi, r9d
mov rbx, qword [rbp + 0x920]
lea r9d, [r11 + r9]
mov edi, r12d
mov dword [rbp + r15*4 - 0x50], r12d
cmovge edi, dword [r10 + 0xda24]
xor r9d, esi
movzx eax, word [rcx + rax]
movzx r11d, word [rcx + rbx]
mov dword [rsp + 0x34], r9d
test eax, eax
je 0x14001d33d
cmp eax, 4
jae 0x14001d2ad
lea ecx, [rax - 1]
jmp 0x14001d2fc
mov ecx, eax
shr ecx, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
shr eax, 1
inc eax
imul ecx, eax, 0x77cb531
lea rax, [0x140000000]
shr rcx, 0x1b
movzx ecx, byte [rcx + rax + 0xc3a30]
inc ecx
lea eax, [rcx - 3]
cmp eax, 3
mov eax, 6
cmovg ecx, eax
mov r8d, dword [rbp + 0x910]
lea rax, [0x140000000]
movsxd rdx, ecx
movzx ecx, byte [r15 + rax + 0xd1ce0]
lea rax, [0x140000000]
add ecx, r8d
shl rcx, 5
movzx r13d, byte [rdx + rax + 0xc3770]
add rcx, rdx
mov edx, r15d
add r13d, dword [r10 + rcx*8 + 0xda2c]
jmp 0x14001d34e
mov r8d, dword [rbp + 0x910]
lea rax, [0x140000000]
mov r13d, r12d
cmp r14d, 2
jg 0x14001d411
movzx eax, byte [rdx + rax + 0xd1ce0]
lea rbx, [0x140000000]
add r8d, eax
lea r9d, [r11 + r11]
sub r9d, dword [rsp + 0x34]
mov ecx, reloc.WS2_32.dll_inet_addr
sub ecx, esi
shl r8, 5
movsxd rax, ecx
mov r12d, 9
mov dword [rsp + 0x48], ecx
sub r12d, esi
movzx ecx, byte [rax + rbx + 0xc3770]
lea rdx, [r8 + rax]
mov eax, dword [r10 + rdx*8 + 0xda2c]
mov edx, r9d
add eax, ecx
imul edx, r9d
mov dword [rsp + 0x38], eax
sub r9d, r11d
imul r9d, r9d
lea ecx, [rax + r13]
movsxd rax, r12d
imul ecx, edi
add ecx, edx
lea rdx, [r8 + rax]
mov esi, dword [r10 + rdx*8 + 0xda2c]
mov dword [rsp + 0x3c], ecx
movzx ecx, byte [rax + rbx + 0xc3770]
add esi, ecx
mov ecx, dword [rsp + 0x3c]
lea eax, [rsi + r13]
imul eax, edi
add eax, r9d
cmp eax, ecx
ja 0x14001d3f1
dec r14d
xor r11d, r11d
cmp eax, ecx
mov ebx, r11d
cmova esi, dword [rsp + 0x38]
cmova r12d, dword [rsp + 0x48]
add esi, r13d
cmp eax, ecx
cmova eax, ecx
jmp 0x14001d8ee
cmp r14d, 3
jg 0x14001d4bd
movzx eax, byte [rdx + rax + 0xd1ce0]
lea r8d, [r11 + r11*2]
add eax, dword [rbp + 0x910]
lea rcx, [0x140000000]
mov edx, eax
sub r8d, r9d
shl rax, 8
mov r9d, r8d
imul r9d, r8d
mov r12d, ntohs
sub r8d, r11d
shl rdx, 5
imul r8d, r8d
mov r11d, reloc.WS2_32.dll_inet_addr
mov ebx, dword [rax + r10 + 0xda94]
sub r11d, esi
mov eax, edi
inc ebx
add ebx, r13d
imul eax, ebx
add r9d, eax
movsxd rax, r11d
add rdx, rax
movzx eax, byte [rax + rcx + 0xc3770]
mov esi, dword [r10 + rdx*8 + 0xda2c]
add esi, eax
add esi, r13d
imul edi, esi
lea eax, [rdi + r8]
cmp eax, r9d
ja 0x14001d4a3
dec r14d
mov r12d, r11d
cmp eax, r9d
cmova esi, ebx
xor r11d, r11d
cmp eax, r9d
mov ebx, r11d
cmova ebx, dword [rsp + 0x44]
cmova eax, r9d
jmp 0x14001d8ee
cmp r14d, 6
jg 0x14001d57c
movzx eax, byte [rdx + rax + 0xd1ce0]
lea r12d, [r14 + 0xa]
mov rsi, qword [rbp + 0x900]
lea rcx, [0x140000000]
mov ebx, dword [rsp + 0x44]
add r8d, eax
shl r8, 5
mov r10d, r11d
imul r10d, r14d
mov dword [rsp + 0x3c], r12d
sub r10d, r9d
movsxd r9, r12d
mov edx, r10d
imul edx, r10d
sub r10d, r11d
imul r10d, r10d
movzx ecx, byte [r9 + rcx + 0xc3770]
lea rax, [r8 + r9]
mov eax, dword [rsi + rax*8 + 0xda2c]
add eax, ecx
mov dword [rsp + 0x48], eax
lea ecx, [rax + r13]
mov eax, edi
imul eax, ecx
lea rcx, [0x140000000]
movzx ecx, byte [r9 + rcx + 0xc376f]
add edx, eax
lea rax, [r9 + r8]
mov esi, dword [rsi + rax*8 + 0xda24]
dec r12d
add esi, ecx
lea eax, [rsi + r13]
imul eax, edi
add eax, r10d
cmp eax, edx
ja 0x14001d564
dec r14d
cmp eax, edx
cmova esi, dword [rsp + 0x48]
cmova r12d, dword [rsp + 0x3c]
add esi, r13d
cmp eax, edx
cmova eax, edx
jmp 0x14001d8ee
cmp r14d, 8
jg 0x14001d62a
lea eax, [rsi + rsi]
mov r8d, r11d
imul r8d, r14d
lea rcx, [r15 + r15]
mov r11d, r14d
sub r11d, eax
lea rax, [0x140000000]
movzx edx, byte [rdx + rax + 0xd1ce0]
sub r11d, 7
movzx eax, word [rcx + rbx]
add edx, dword [rbp + 0x910]
sub r8d, r9d
mov ebx, dword [rsp + 0x44]
shl rdx, 8
add rdx, r10
imul r8d, r8d
lea ecx, [rax + rax*2]
add ecx, ecx
sub ecx, dword [rsp + 0x34]
mov r9d, dword [rdx + 0xdab4]
mov esi, dword [rdx + 0xdaac]
add r9d, 2
inc esi
imul ecx, ecx
lea r10d, [r9 + r13]
imul r10d, edi
lea eax, [rsi + r13]
imul eax, edi
add r10d, r8d
add eax, ecx
mov ecx, 6
cmp eax, r10d
cmova esi, r9d
cmovbe r14d, ecx
add esi, r13d
cmp eax, r10d
seta r12b
add r12d, 0x10
cmp eax, r10d
cmova ebx, r11d
cmova eax, r10d
jmp 0x14001d8ee
mov eax, r11d
mov ebx, r14d
imul eax, r14d
sub eax, r9d
imul eax, eax
cmp r14d, 0xc
jg 0x14001d6ca
lea ecx, [rsi*4]
mov r12d, send
sub ebx, ecx
lea rcx, [0x140000000]
movzx ecx, byte [rdx + rcx + 0xd1ce0]
sub ebx, 9
add r8d, ecx
lea edx, [r11*8]
shl r8, 8
mov ecx, edi
sub edx, r9d
imul edx, edx
mov esi, dword [r8 + r10 + 0xdabc]
add esi, 3
add esi, r13d
imul ecx, esi
add eax, ecx
mov ecx, dword [r8 + r10 + 0xdab4]
lea r8d, [r13 + 2]
add r8d, ecx
imul edi, r8d
add edi, edx
cmp edi, eax
ja 0x14001d8ee
mov ecx, dword [rbp + 0x930]
mov r12d, send
lea eax, [rcx + rcx]
lea ebx, [r12 - 0x10]
lea r14d, [r12 - 9]
jmp 0x14001d8e7
cmp r14d, 0x14
jg 0x14001d75d
lea ecx, [rsi*8]
mov r12d, reloc.WS2_32.dll_send
sub ebx, ecx
lea rcx, [0x140000000]
movzx ecx, byte [rdx + rcx + 0xd1ce0]
sub ebx, 0xd
add r8d, ecx
lea edx, [r11 + r11*2]
shl r8, 8
mov ecx, edi
shl edx, 2
sub edx, r9d
imul edx, edx
mov esi, dword [r8 + r10 + 0xdac4]
add esi, 4
add esi, r13d
imul ecx, esi
add eax, ecx
mov ecx, dword [r8 + r10 + 0xdabc]
lea r8d, [r13 + 3]
add r8d, ecx
imul edi, r8d
add edi, edx
cmp edi, eax
ja 0x14001d8ee
mov ecx, dword [rbp + 0x930]
mov r12d, send
lea eax, [rcx*4]
lea ebx, [r12 - 0xf]
lea r14d, [r12 - 6]
jmp 0x14001d8e7
mov ecx, esi
cmp r14d, 0x24
jg 0x14001d7ee
shl ecx, 4
mov r12d, socket
sub ebx, ecx
lea rcx, [0x140000000]
movzx ecx, byte [rdx + rcx + 0xd1ce0]
sub ebx, 0x15
add r8d, ecx
lea edx, [r11 + r11*4]
shl r8, 8
mov ecx, edi
shl edx, 2
sub edx, r9d
imul edx, edx
mov esi, dword [r8 + r10 + 0xdacc]
add esi, 5
add esi, r13d
imul ecx, esi
add eax, ecx
mov ecx, dword [r8 + r10 + 0xdac4]
lea r8d, [r13 + 4]
add r8d, ecx
imul edi, r8d
add edi, edx
cmp edi, eax
ja 0x14001d8ee
mov ecx, dword [rbp + 0x930]
mov r12d, reloc.WS2_32.dll_send
lea eax, [rcx*8]
lea ebx, [r12 - 0xc]
lea r14d, [r12 + 1]
jmp 0x14001d8e7
cmp r14d, 0x44
jg 0x14001d872
shl ecx, 5
mov r12d, socket
sub ebx, ecx
lea rcx, [0x140000000]
movzx ecx, byte [rdx + rcx + 0xd1ce0]
sub ebx, 0x25
add r8d, ecx
lea edx, [r11 + r11*8]
shl r8, 8
mov ecx, edi
shl edx, 2
sub edx, r9d
imul edx, edx
mov esi, dword [r8 + r10 + 0xdad4]
add esi, 6
add esi, r13d
imul ecx, esi
add eax, ecx
mov ecx, dword [r8 + r10 + 0xdacc]
lea r8d, [r13 + 5]
add r8d, ecx
imul edi, r8d
add edi, edx
cmp edi, eax
jae 0x14001d8ee
mov eax, dword [rbp + 0x930]
mov r12d, socket
shl eax, 4
lea ebx, [r12 - 5]
lea r14d, [r12 + 0x10]
jmp 0x14001d8e7
shl ecx, 9
mov r12d, socket
sub ebx, ecx
lea rcx, [0x140000000]
movzx ecx, byte [rdx + rcx + 0xd1ce0]
sub ebx, 0x45
add r8d, ecx
imul edx, r11d, 0x44
shl r8, 8
mov ecx, edi
mov esi, dword [r8 + r10 + 0xdadc]
sub edx, r9d
add esi, 0xa
imul edx, edx
add esi, r13d
imul ecx, esi
add eax, ecx
mov ecx, dword [r8 + r10 + 0xdad4]
lea r8d, [r13 + 6]
add r8d, ecx
imul edi, r8d
add edi, edx
cmp edi, eax
jae 0x14001d8ee
mov eax, dword [rbp + 0x930]
mov r12d, socket
shl eax, 5
mov ebx, 0x1f
lea r14d, [r12 + 0x2f]
sub ebx, eax
mov esi, r8d
mov eax, edi
mov rdx, qword [rsp + 0x58]
lea ecx, [r15 + 1]
and ecx, 0x3f
mov r11d, r15d
sar rdx, cl
mov r9d, ecx
and edx, 1
add cl, cl
mov r10d, r15d
shl r10, 5
add cl, dl
lea r8, [rdx + r9*2]
add r8, r8
mov byte [rbp + r10 + 0xc0], cl
mov byte [rbp + r10 + 0xc1], r12b
mov word [rbp + r10 + 0xc2], bx
mov edx, dword [rbp + r8*8 + 0xb4]
add edx, eax
mov dword [rbp + r10 + 0xc4], edx
mov ecx, dword [rbp + r8*8 + 0xb8]
add ecx, esi
mov dword [rbp + r10 + 0xc8], ecx
mov ecx, dword [rbp + 0x930]
lea eax, [rcx + r14]
mov r14, qword [rsp + 0x58]
xor eax, ecx
mov dword [rbp + r10 + 0xcc], eax
mov rax, qword [rbp - 0x80]
bts rax, r11
mov qword [rbp - 0x80], rax
bts r14, r11
mov qword [rsp + 0x58], r14
mov r10, qword [rbp + 0x900]
lea r11, [0x140000000]
mov rdi, qword [rbp + 0x918]
mov r8d, r15d
mov r13d, dword [rbp + 0x910]
dec r15d
test r15d, r15d
jg 0x14001cb00
mov r9, qword [rbp - 0x70]
mov r11d, 1
mov r12, qword [rsp + 0x60]
mov esi, dword [rbp + 0x908]
mov rbx, qword [rbp + 0x938]
xor eax, eax
movzx ecx, ax
mov eax, ecx
sar r14, 1
and r14d, 1
shl ecx, 0x10
mov rbx, qword [rbx]
or ecx, eax
mov edx, r14d
movd xmm0, ecx
pshufd xmm0, xmm0, 0
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x50], xmm0
movups xmmword [rdi + 0x60], xmm0
movups xmmword [rdi + 0x70], xmm0
mov rax, qword [r10 + 0x88]
mov qword [rbp + 0x910], rax
mov eax, r14d
add rax, rax
mov r13d, dword [rbp + rax*8 + 0xd8]
nop word [rax + rax]
mov byte [rbx], sil
mov rcx, r9
mov byte [rbx + 1], r11b
mov esi, r11d
shl rcx, 6
add rcx, rsi
movzx eax, word [r10 + rcx*2 + 0xd7c0]
lea r14, [r10 + rcx*8]
mov word [rbx + 2], ax
mov rax, qword [r14 + 0xd1c0]
mov qword [rbx + 8], rax
add rbx, 0x10
movzx eax, word [r12 + rsi*2]
mov r12d, edx
lea rdi, [r12 + rsi*2]
add rdi, rdi
movzx r15d, byte [rbp + rdi*8 + 0xb1]
cmp r15b, 7
jl 0x14001db61
test eax, eax
je 0x14001dab7
mov edx, dword [rbp + 0x908]
mov r9d, eax
mov r8d, r11d
mov rcx, r10
call fcn.14001c920
mov r12, qword [rsp + 0x60]
xor eax, eax
mov r10, qword [rbp + 0x900]
mov r9, qword [rbp - 0x70]
mov word [r12 + rsi*2], ax
jmp 0x14001dabc
mov r12, qword [rsp + 0x60]
mov rdx, qword [r14 + 0xd1c0]
lea rax, [rdx + 1]
mov qword [r14 + 0xd1c0], rax
mov rax, qword [r10 + r9*8 + 0xd190]
mov rcx, qword [rax + rsi*8]
mov byte [rdx + rcx], r15b
mov rax, qword [r10 + r9*8 + 0xd1a8]
movzx r10d, byte [rbp + rdi*8 + 0xb0]
mov r9d, r10d
and r10d, 1
shr r9d, 1
mov rcx, qword [rax + rsi*8]
mov r11d, r9d
movzx eax, word [rbp + rdi*8 + 0xb2]
mov esi, dword [rbp + 0x908]
lea r8d, [r9 - 1]
mov word [rcx + rdx*2], ax
and r8d, 0x3f
mov rax, qword [rbp + 0x920]
movsx ecx, word [rbp + rdi*8 + 0xbc]
movsx edx, word [rax + r8*2]
mov rax, qword [rbp + 0x910]
imul edx, ecx
test r9d, r9d
mov r9, qword [rbp - 0x70]
movzx ecx, byte [r8 + rax]
mov rax, qword [rbp + 0x918]
mov word [rax + rcx*2], dx
mov edx, r10d
mov r10, qword [rbp + 0x900]
jne 0x14001da30
jmp 0x14001db9c
inc eax
cmp eax, 0xfff
jb 0x14001db84
mov edx, dword [rbp + 0x908]
mov r9d, eax
mov r8d, r11d
mov rcx, r10
call fcn.14001c920
xor r11d, r11d
mov eax, r11d
mov rcx, qword [rsp + 0x60]
mov word [rcx + rsi*2], ax
lea rax, [r12 + rsi*2]
add rax, rax
sub r13d, dword [rbp + rax*8 + 0xb8]
mov rax, qword [rbp + 0x938]
mov qword [rax], rbx
mov eax, r13d
add rsp, 0x9b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret