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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov r14, qword [rcx + 0x10]
xor r11d, r11d
xor r13b, r13b
mov qword [rsp + 0x78], r11
mov rbp, rdx
mov byte [rsp + 0x100], r13b
mov rbx, rcx
mov dword [rsp + 0x80], r11d
movsxd r10, dword [r14 + 0x90]
mov r12d, r11d
mov dword [rsp + 0x70], r11d
mov qword [rsp + 0xa0], r14
mov dword [rsp + 0x84], r10d
cmp dword [r14 + 0x94], r10d
jg 0x14015ecba
xor r9d, r9d
mov dword [rsp + 0x20], r11d
xor r8d, r8d
lea edx, [r11 + 0xf]
mov rcx, r14
call fcn.14018ec70
mov r9, qword [rsp + 0x118]
xor r11d, r11d
mov dword [rsp + 0x84], eax
jmp 0x14015ece2
lea rcx, [r10 + r10*2]
lea eax, [r10 + 1]
mov dword [r14 + 0x90], eax
mov rax, qword [r14 + 0x88]
mov qword [rax + rcx*8], setsockopt
mov qword [rax + rcx*8 + 8], r11
mov qword [rax + rcx*8 + 0x10], r11
mov rax, qword [rbp]
mov r15d, r11d
mov rsi, qword [rbp + 0x20]
movabs r10, 0x8000000000000000
mov r8, qword [r9 + 0x60]
mov dword [rsp + 0x48], r11d
mov rdx, qword [rax + 8]
movzx eax, byte [r9 + 0x40]
imul rdi, rax, 0x68
movsxd rax, dword [rbp + 0x14]
mov rbp, r11
add rdi, rdx
mov qword [rsp + 0x90], rdx
imul rax, rax, 0x38
mov rcx, qword [rdi + 0x28]
add rax, rsi
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x60], r11
cmp rsi, rax
jae 0x14015f0dc
nop
test byte [rsi + 0x12], 2
mov rdi, qword [rsi]
jne 0x14015ef76
movzx r8d, byte [r9 + 0x40]
mov rcx, rdi
call fcn.1401ccbe0
test eax, eax
je 0x14015ef6c
test rdi, rdi
je 0x14015ed8f
mov rcx, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
call fcn.140166470
mov rbp, rax
xor edi, edi
jmp 0x14015ed92
mov rbp, rdi
mov r15, qword [rbx]
test r12, r12
jne 0x14015eda7
mov r12, rbp
mov qword [rsp + 0x78], rbp
jmp 0x14015ef62
test rbp, rbp
je 0x14015ef62
mov eax, dword [r12 + 4]
or eax, dword [rbp + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x14015eea8
cmp byte [rbx + 0x134], 2
jae 0x14015eea8
mov rdx, r12
mov rcx, rbx
call fcn.1401cbb80
mov rdx, rbp
mov rcx, rbx
call fcn.1401cbb80
lea rdx, [rsp + 0x58]
mov dword [rsp + 0x58], edi
lea rcx, [0x140310970]
call fcn.1401dcf50
test eax, eax
mov rcx, r15
mov eax, 2
cmove edi, eax
mov edx, edi
add rdx, 0x48
call fcn.1401c3340
mov qword [rsp + 0x78], rax
mov r12, rax
test rax, rax
je 0x14015ef62
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r12], xmm0
movups xmmword [r12 + 0x10], xmm0
movups xmmword [r12 + 0x20], xmm0
movups xmmword [r12 + 0x30], xmm0
mov qword [r12 + 0x40], rax
mov rax, 0xffffffffffffffff
mov word [r12 + 0x32], ax
mov byte [r12], 0x9b
test edi, edi
jne 0x14015ee8b
mov eax, dword [rsp + 0x58]
mov ecx, 0x20800800
test eax, eax
mov dword [r12 + 8], eax
mov edx, 0x10800800
mov dword [r12 + 0x28], 1
cmovne ecx, edx
or dword [r12 + 4], ecx
jmp 0x14015ef62
lea rax, [r12 + 0x48]
mov qword [r12 + 8], rax
mov word [rax], gethostbyname
mov dword [r12 + 0x28], 1
jmp 0x14015ef62
mov edx, 0x48
mov rcx, r15
call fcn.1401c3340
mov rdi, rax
test rax, rax
je 0x14015ef44
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
mov qword [rdi + 0x40], rax
mov rax, 0xffffffffffffffff
mov word [rdi + 0x32], ax
mov byte [rdi], 0x2c
mov qword [rdi + 0x18], rbp
mov edx, dword [rbp + 4]
and edx, 0x400208
or edx, dword [rdi + 4]
mov dword [rdi + 4], edx
mov ecx, dword [rbp + 0x28]
inc ecx
mov dword [rdi + 0x28], ecx
mov qword [rdi + 0x10], r12
mov eax, dword [r12 + 4]
and eax, 0x400208
or eax, edx
mov dword [rdi + 4], eax
mov eax, dword [r12 + 0x28]
cmp eax, ecx
jl 0x14015ef23
inc eax
mov dword [rdi + 0x28], eax
mov rax, qword [rbx]
mov r8d, dword [rax + 0x94]
cmp dword [rdi + 0x28], r8d
jle 0x14015ef5a
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, rbx
call fcn.1401c64c0
jmp 0x14015ef5a
mov rcx, qword [rbx]
mov rdx, r12
call fcn.1401cbc20
mov rcx, qword [rbx]
mov rdx, rbp
call fcn.1401cbc20
mov r12, rdi
mov qword [rsp + 0x78], rdi
mov rbp, qword [rsp + 0x60]
mov r15d, dword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov r8, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
mov edx, dword [rdi + 0x4c]
cmp dword [rsi + 0x1c], edx
jne 0x14015f0aa
test byte [rsi + 0x14], 0x82
je 0x14015f0aa
movzx ecx, byte [rdi + 0x44]
test cl, 0x58
je 0x14015efc3
mov rax, qword [rsi]
mov r8d, dword [rax + 4]
test r8b, 3
je 0x14015f0a0
cmp dword [rax + 0x34], edx
jne 0x14015f0a0
test cl, 0x18
je 0x14015efc3
test r8b, 2
jne 0x14015f0a0
mov rax, qword [rsp + 0x110]
test qword [rsi + 0x28], rax
jne 0x14015f0a0
movsxd rax, dword [rsi + 0x20]
test eax, eax
js 0x14015f0a0
lea rdx, [rax + rax*2]
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0xc]
mov rcx, qword [rsi]
call fcn.1401de6a0
test eax, eax
je 0x14015f0a0
movsxd rcx, dword [rsi + 0x20]
cmp ecx, 0x40
jl 0x14015f017
movabs rdi, 0x8000000000000000
jmp 0x14015f01f
mov edi, 1
shl rdi, cl
test r13b, r13b
jne 0x14015f04f
mov rax, qword [rsp + 0x88]
lea rcx, [rcx + rcx*2]
lea rdx, str.automatic_index_on__s__s_
mov r9, qword [rax + 8]
mov r8, qword [rax]
mov r9, qword [r9 + rcx*8]
mov ecx, 0x11c
call fcn.140139330
mov r13b, 1
test rbp, rdi
jne 0x14015f09b
mov rdx, qword [rsp + 0x50]
lea ebp, [r15 + 1]
mov rcx, qword [rbx]
mov r8d, ebp
call fcn.1402301d0
test eax, eax
jne 0x14015fb11
mov r8, qword [rsp + 0x50]
movsxd rcx, r15d
mov r15d, ebp
mov dword [rsp + 0x48], ebp
mov rbp, qword [rsp + 0x60]
mov rax, qword [r8 + 0x48]
or rbp, rdi
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0x60], rbp
mov qword [rax + rcx*8], rsi
jmp 0x14015f0a5
mov rdi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x90]
add rsi, 0x38
mov r9, qword [rsp + 0x118]
cmp rsi, rax
jb 0x14015ed50
mov rcx, qword [rsp + 0x88]
xor r11d, r11d
movabs r10, 0x8000000000000000
mov word [r8 + 0x3c], r15w
mov word [r8 + 0x18], r15w
mov dword [r8 + 0x38], 0x4241
cmp byte [rcx + 0x3f], 2
jne 0x14015f0fd
mov rbp, 0xffffffffffffffff
jmp 0x14015f107
not rbp
or rbp, r10
and rbp, qword [rdi + 0x58]
movsx eax, word [rcx + 0x36]
mov edi, 0x3f
mov qword [rsp + 0x60], rbp
mov r8d, eax
mov edx, r11d
cmp di, ax
jl 0x14015f130
mov edi, eax
test eax, eax
jle 0x14015f14b
nop word [rax + rax]
mov ecx, r15d
mov eax, edx
inc r15d
bt rbp, rax
cmovae r15d, ecx
inc edx
cmp edx, edi
jl 0x14015f130
mov dword [rsp + 0x48], r15d
mov rax, qword [rsp + 0x68]
cmp qword [rax + 0x58], 0
jge 0x14015f163
add r15d, 0xffffffc1
add r15d, r8d
mov dword [rsp + 0x48], r15d
mov rcx, qword [rbx]
lea esi, [r15 + 1]
movsx rbp, si
mov eax, ebp
movsx r13d, si
add eax, r13d
lea edx, [rax*2 + 9]
add edx, ebp
lea eax, [rbp + 0xe]
and edx, 0xfffffff8
lea eax, [rdx + rax*8]
movsxd r12, eax
test rcx, rcx
je 0x14015f19b
mov rdx, r12
call fcn.1401c3340
jmp 0x14015f1a3
mov rcx, r12
call fcn.1401e3080
mov r15, rax
test rax, rax
je 0x14015fb11
mov r8, r12
xor edx, edx
mov rcx, rax
call fcn.14002a0d0
mov r9d, dword [rsp + 0x48]
lea rax, [r15 + 0x70]
mov r11, qword [rsp + 0x88]
lea rdx, [rax + rbp*8]
mov qword [r15 + 0x40], rax
lea eax, [r13 + 1]
movsxd rcx, eax
mov word [r15 + 0x60], si
mov rsi, qword [rsp + 0x108]
mov qword [r15 + 0x10], rdx
lea rax, [rdx + rcx*2]
mov word [r15 + 0x5e], r9w
mov qword [r15 + 8], rax
xor ecx, ecx
lea rax, [rax + rbp*2]
mov dword [rsp + 0x58], ecx
mov qword [r15 + 0x38], rax
lea rbp, str.BINARY
mov rax, qword [rsp + 0x50]
mov r13d, ecx
mov qword [rsp + 0x98], rcx
mov qword [rax + 0x20], r15
lea rax, str.auto_index
mov qword [r15], rax
mov rax, qword [rsp + 0x40]
mov qword [r15 + 0x18], r11
mov rsi, qword [rsi + 0x20]
cmp rsi, rax
jae 0x14015f412
mov r14, qword [rsp + 0x68]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x58], rcx
nop word [rax + rax]
mov edx, dword [r14 + 0x4c]
cmp dword [rsi + 0x1c], edx
jne 0x14015f3e2
test byte [rsi + 0x14], 0x82
je 0x14015f3e2
movzx ecx, byte [r14 + 0x44]
test cl, 0x58
je 0x14015f2af
mov rax, qword [rsi]
mov r8d, dword [rax + 4]
test r8b, 3
je 0x14015f3dd
cmp dword [rax + 0x34], edx
mov rax, qword [rsp + 0x40]
jne 0x14015f3e2
test cl, 0x18
je 0x14015f2af
test r8b, 2
jne 0x14015f3e2
mov rcx, qword [rsp + 0x110]
mov r12d, edi
test qword [rsi + 0x28], rcx
jne 0x14015f3e2
movsxd rax, dword [rsi + 0x20]
test eax, eax
js 0x14015f3dd
lea rdx, [rax + rax*2]
mov rax, qword [r14 + 0x28]
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0xc]
mov rcx, qword [rsi]
call fcn.1401de6a0
test eax, eax
je 0x14015f3dd
mov ecx, dword [rsi + 0x20]
cmp ecx, 0x40
jl 0x14015f305
movabs rax, 0x8000000000000000
jmp 0x14015f30d
mov eax, 1
shl rax, cl
mov r8, qword [rsp + 0x98]
test r8, rax
jne 0x14015f3dd
mov rbp, qword [rsi]
or r8, rax
mov rax, qword [r15 + 8]
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x98], r8
mov word [rdx + rax], cx
test dword [rbp + 4], 0x400
je 0x14015f34c
mov rdi, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
jmp 0x14015f354
mov rdi, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x10]
test dword [rdx + 4], 0x200
jne 0x14015f37b
test rdi, rdi
je 0x14015f36b
test dword [rdi + 4], 0x200
jne 0x14015f378
mov rcx, rbx
call fcn.1401cb2f0
test rax, rax
jne 0x14015f388
mov rdx, rdi
mov rcx, rbx
call fcn.1401cb2f0
test rax, rax
je 0x14015f38d
mov rcx, qword [rax]
jmp 0x14015f394
lea rcx, str.BINARY
mov r8, qword [rsp + 0x90]
inc r13d
mov rax, qword [r15 + 0x40]
mov edi, r12d
add qword [rsp + 0x58], 2
mov qword [r8 + rax], rcx
add r8, 8
mov rcx, qword [rbp + 0x10]
mov qword [rsp + 0x90], r8
test rcx, rcx
je 0x14015f3dd
call fcn.1401c6f20
cmp al, 0x42
mov rax, qword [rsp + 0x40]
je 0x14015f3e2
mov byte [rsp + 0x100], 1
jmp 0x14015f3e2
mov rax, qword [rsp + 0x40]
add rsi, 0x38
cmp rsi, rax
jb 0x14015f260
mov r14, qword [rsp + 0xa0]
lea rbp, str.BINARY
mov r9d, dword [rsp + 0x48]
xor ecx, ecx
mov r11, qword [rsp + 0x88]
mov dword [rsp + 0x58], r13d
test edi, edi
jle 0x14015f45f
mov r10, qword [rsp + 0x60]
movsxd rax, r13d
lea rdx, [rax*8]
lea r8, [rax + rax]
nop word [rax + rax]
mov eax, ecx
bt r10, rax
jae 0x14015f454
mov rax, qword [r15 + 8]
inc r13d
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [r15 + 0x40]
mov qword [rdx + rax], rbp
add rdx, 8
inc ecx
cmp ecx, edi
jl 0x14015f430
mov dword [rsp + 0x58], r13d
mov r12, qword [rsp + 0x68]
cmp qword [r12 + 0x58], 0
jge 0x14015f4c0
mov r8d, 0x3f
cmp r8w, word [r11 + 0x36]
jge 0x14015f4c0
movsxd rax, r13d
lea rcx, [rax*8]
lea rdx, [rax + rax]
nop dword [rax + rax]
mov rax, qword [r15 + 8]
lea rdx, [rdx + 2]
inc r13d
lea rcx, [rcx + 8]
mov word [rdx + rax - 2], r8w
inc r8d
mov rax, qword [r15 + 0x40]
mov qword [rcx + rax - 8], rbp
movsx eax, word [r11 + 0x36]
cmp r8d, eax
jl 0x14015f490
mov dword [rsp + 0x58], r13d
mov rax, qword [r15 + 8]
mov rdx, 0xffffffffffffffff
movsxd rcx, r13d
xor r13d, r13d
mov word [rax + rcx*2], dx
lea edx, [r9 + 1]
mov rax, qword [r15 + 0x40]
mov qword [rax + rcx*8], rbp
mov rbp, qword [rsp + 0x118]
mov eax, dword [rbx + 0x34]
mov dword [rbp + 8], eax
inc dword [rbx + 0x34]
movsxd rcx, dword [r14 + 0x90]
mov r8d, dword [rbp + 8]
cmp dword [r14 + 0x94], ecx
jg 0x14015f523
mov r9d, edx
mov dword [rsp + 0x20], r13d
lea edx, [r13 + 0x74]
mov rcx, r14
call fcn.14018ec70
lea rdi, [r14 + 0x88]
jmp 0x14015f555
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
lea rdi, [r14 + 0x88]
mov rax, qword [rdi]
mov dword [rax + rcx*8], reloc.WS2_32.dll_WSACleanup
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov rsi, qword [rbx + 0x10]
mov rdx, r15
mov rcx, rbx
call fcn.1401e1790
mov r8, rax
test rax, rax
je 0x14015f5b6
mov rax, qword [rsi]
cmp byte [rax + 0x67], 0
je 0x14015f59a
cmp qword [rax + 0x308], 0
jne 0x14015f591
add dword [r8], 0xffffffff
jne 0x14015f591
mov rcx, qword [r8 + 0x10]
mov rdx, r8
call fcn.1401c3490
lea rdi, [r14 + 0x88]
jmp 0x14015f5b6
movsxd rax, dword [rsi + 0x90]
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8 - 0x17], 0xf8
mov qword [rax + rcx*8 - 8], r8
mov rax, qword [rbx]
test dword [rax + 0x60], 0x80000
jne 0x14015f64a
cmp byte [rsp + 0x100], 0
je 0x14015f64a
mov rax, qword [rsp + 0x108]
mov r8, rbp
mov rcx, rbx
mov rdx, qword [rax]
call fcn.140217780
inc dword [rbx + 0x38]
mov edx, dword [rbx + 0x38]
mov dword [rbp + 0x34], edx
movsxd rcx, dword [r14 + 0x90]
cmp dword [r14 + 0x94], ecx
jg 0x14015f61c
mov r9d, edx
mov dword [rsp + 0x20], r13d
mov edx, 0x4d
mov r8d, 0x2710
mov rcx, r14
call fcn.14018ec70
jmp 0x14015f64a
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi]
mov dword [rax + rcx*8], 0x4d
mov dword [rax + rcx*8 + 4], 0x2710
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
test byte [r12 + 0x48], 0x20
je 0x14015f755
movsxd r8, dword [r14 + 0x90]
mov ebp, dword [r12 + 0x3c]
mov dword [rsp + 0x70], r8d
cmp dword [r14 + 0x94], r8d
jg 0x14015f68d
xor r9d, r9d
mov dword [rsp + 0x20], r13d
xor r8d, r8d
mov rcx, r14
lea edx, [r9 + 0x47]
call fcn.14018ec70
mov dword [rsp + 0x70], eax
jmp 0x14015f6b5
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [r14 + 0x90], eax
mov rax, qword [rdi]
mov qword [rax + rcx*8], 0x47
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r13
movsxd rcx, dword [r14 + 0x90]
mov edx, dword [r12 + 0x38]
cmp dword [r14 + 0x94], ecx
jg 0x14015f6e2
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, ebp
mov rcx, r14
lea edx, [r9 + 0xb]
call fcn.14018ec70
jmp 0x14015f70c
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi]
mov dword [rax + rcx*8], reloc.WS2_32.dll_inet_addr
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r13
movsxd rsi, dword [r14 + 0x90]
cmp dword [r14 + 0x94], esi
jg 0x14015f737
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov r8d, ebp
mov rcx, r14
lea edx, [r9 + 0xc]
call fcn.14018ec70
mov esi, eax
jmp 0x14015f7ad
lea eax, [rsi + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rsi + rsi*2]
mov rax, qword [rdi]
mov dword [rax + rcx*8], recv
mov dword [rax + rcx*8 + 4], ebp
jmp 0x14015f79f
movsxd rsi, dword [r14 + 0x90]
mov edx, dword [rbp + 4]
cmp dword [r14 + 0x94], esi
jg 0x14015f783
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov r8d, edx
mov rcx, r14
lea edx, [r9 + 0x24]
call fcn.14018ec70
mov esi, eax
jmp 0x14015f7ad
lea eax, [rsi + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rsi + rsi*2]
mov rax, qword [rdi]
mov dword [rax + rcx*8], 0x24
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 0x10], r13
mov qword [rax + rcx*8 + 8], 0
mov r13, qword [rsp + 0x78]
mov eax, reloc.WS2_32.dll_recv
test r13, r13
je 0x14015f7e5
dec dword [rbx + 0x44]
mov r9d, eax
mov r8d, dword [rbx + 0x44]
mov rdx, r13
mov rcx, rbx
mov dword [rsp + 0x80], r8d
call fcn.1401cbf40
mov rax, qword [rsp + 0x50]
or dword [rax + 0x38], 0x20000
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x14015f7f5
inc dword [rbx + 0x38]
mov ebp, dword [rbx + 0x38]
jmp 0x14015f804
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov ebp, dword [rbx + rax*4 + 0xe8]
xor eax, eax
mov r9d, ebp
mov dword [rsp + 0x38], eax
mov rdx, r15
mov qword [rsp + 0x30], rax
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x118]
mov r8d, dword [rax + 4]
call fcn.1401dc0d0
mov r15, qword [rsp + 0x118]
mov r12d, eax
mov edx, dword [r15 + 0x34]
test edx, edx
je 0x14015f87c
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [r14 + 0x90]
movzx r8d, word [rax + 0x18]
cmp dword [r14 + 0x94], ecx
jg 0x14015f8ad
mov dword [rsp + 0x28], r8d
xor r9d, r9d
mov r8d, edx
mov dword [rsp + 0x20], r12d
mov edx, 0xb7
mov rcx, r14
call fcn.14014fc40
xor r9d, r9d
movsxd rcx, dword [r14 + 0x90]
mov edx, dword [r15 + 8]
cmp dword [r14 + 0x94], ecx
jg 0x14015f8dd
mov dword [rsp + 0x20], r9d
mov r8d, edx
mov r9d, ebp
mov edx, 0x8a
mov rcx, r14
call fcn.14018ec70
jmp 0x14015f907
lea eax, [rcx + 1]
xor r9d, r9d
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi]
mov dword [rax + rcx*8], 0xfdb7
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r12d
mov dword [rax + rcx*8 + 0x10], r8d
jmp 0x14015f87f
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi]
mov dword [rax + rcx*8], 0x8a
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
movsxd rdx, dword [r14 + 0x90]
test edx, edx
jle 0x14015f92a
mov rax, qword [rdi]
lea rcx, [rdx + rdx*2]
mov edx, reloc.WS2_32.dll_recv
mov word [rax + rcx*8 - 0x16], dx
mov edx, dword [r14 + 0x90]
test r13, r13
je 0x14015f960
mov r9, qword [r14 + 0x18]
mov ecx, dword [rsp + 0x80]
not ecx
mov eax, dword [r9 + 0x48]
add eax, dword [r9 + 0x44]
jns 0x14015f956
mov r8d, ecx
mov rdx, r14
mov rcx, r9
call fcn.1401acaf0
jmp 0x14015f960
mov rax, qword [r9 + 0x50]
movsxd rcx, ecx
mov dword [rax + rcx*4], edx
mov rax, qword [rsp + 0x68]
lea r15, [0x14036e150]
test byte [rax + 0x48], 0x20
je 0x14015fa2c
mov rax, qword [r14]
cmp byte [rax + 0x67], 0
je 0x14015f984
mov rcx, r15
jmp 0x14015f994
movsxd rax, dword [rsp + 0x70]
lea rcx, [rax + rax*2]
mov rax, qword [rdi]
lea rcx, [rax + rcx*8]
mov eax, dword [rsp + 0x58]
mov edx, esi
add eax, r12d
mov r12, qword [rsp + 0x68]
mov dword [rcx + 8], eax
mov rcx, qword [rsp + 0x118]
mov r9d, dword [r12 + 0x40]
mov eax, dword [rcx + 8]
mov r8d, dword [rcx + 4]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.140220310
movsxd rcx, dword [r14 + 0x90]
xor r9d, r9d
cmp dword [r14 + 0x94], ecx
jg 0x14015f9fa
xor r8d, r8d
mov dword [rsp + 0x20], r9d
mov r9d, esi
mov rcx, r14
lea edx, [r8 + 9]
call fcn.14018ec70
and dword [r12 + 0x48], 0xffffffdf
jmp 0x14015faac
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi]
mov qword [rax + rcx*8], 9
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
and dword [r12 + 0x48], 0xffffffdf
jmp 0x14015faac
mov rax, qword [rsp + 0x118]
lea edx, [rsi + 1]
movsxd rcx, dword [r14 + 0x90]
xor r9d, r9d
mov r8d, dword [rax + 4]
cmp dword [r14 + 0x94], ecx
jg 0x14015fa65
mov dword [rsp + 0x20], r9d
mov rcx, r14
mov r9d, edx
mov edx, 0x27
call fcn.14018ec70
jmp 0x14015fa90
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi]
mov dword [rax + rcx*8], 0x27
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
movsxd rax, dword [r14 + 0x90]
test eax, eax
jle 0x14015faac
lea rcx, [rax + rax*2]
mov edx, 3
mov rax, qword [rdi]
mov word [rax + rcx*8 - 0x16], dx
mov rax, qword [r14]
mov edx, dword [r14 + 0x90]
cmp byte [rax + 0x67], 0
je 0x14015fac1
mov rax, r15
jmp 0x14015facf
movsxd rax, esi
lea rcx, [rax + rax*2]
mov rax, qword [rdi]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
test ebp, ebp
je 0x14015fae8
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x14015fae8
mov dword [rbx + rax*4 + 0xe8], ebp
inc byte [rbx + 0x1f]
mov rax, qword [r14]
mov edx, dword [r14 + 0x90]
cmp byte [rax + 0x67], 0
jne 0x14015fb0b
movsxd rax, dword [rsp + 0x84]
lea rcx, [rax + rax*2]
mov rax, qword [rdi]
lea r15, [rax + rcx*8]
mov dword [r15 + 8], edx
jmp 0x14015fb16
mov r13, qword [rsp + 0x78]
test r13, r13
je 0x14015fb26
mov rcx, qword [rbx]
mov rdx, r13
call fcn.1401cbc20
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret