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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rdi
sub rsp, 0x110
mov r10, qword [rcx + 0x10]
xor r11d, r11d
mov qword [rax - 0x10], rbx
mov r9, r8
mov rbx, qword [rsp + 0x140]
mov rdi, rcx
mov qword [rax - 0x18], rbp
movsxd r8, dword [r10 + 0x90]
mov qword [rax - 0x20], rsi
xor sil, sil
mov qword [rax - 0x28], r12
mov r12d, r11d
mov qword [rax - 0x38], r14
mov r14, rdx
mov qword [rax - 0x40], r15
mov byte [rsp + 0x40], sil
mov qword [rsp + 0x78], r11
mov dword [rsp + 0x80], r11d
mov dword [rsp + 0x70], r11d
mov qword [rsp + 0x98], r10
mov dword [rsp + 0x84], r8d
cmp dword [r10 + 0x94], r8d
jg 0x14008a463
xor r9d, r9d
mov dword [rsp + 0x20], r11d
xor r8d, r8d
lea edx, [r11 + 0xf]
mov rcx, r10
call fcn.14009a470
mov r9, qword [rsp + 0x130]
xor r11d, r11d
mov dword [rsp + 0x84], eax
jmp 0x14008a48b
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [r10 + 0x90], eax
mov rax, qword [r10 + 0x88]
mov qword [rax + rcx*8], reloc.WS2_32.dll_ntohs
mov qword [rax + rcx*8 + 8], r11
mov qword [rax + rcx*8 + 0x10], r11
mov r15, qword [r14 + 0x20]
mov ebp, r11d
movsxd rax, dword [r14 + 0x14]
mov r10, r11
mov rcx, qword [r9 + 0x20]
movabs r8, 0x8000000000000000
mov rdx, qword [rbx + 0x60]
imul rax, rax, 0x38
mov qword [rsp + 0xe8], r13
add rax, r15
mov dword [rsp + 0x50], r11d
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r11
cmp r15, rax
jae 0x14008a961
lea r14, [r9 + 0x44]
mov r13, r14
lea r8, [0x1400ea540]
nop dword [rax]
test byte [r15 + 0x12], 2
lea rdx, [fcn.140091a30]
mov rbx, qword [r15]
jne 0x14008a7e8
movzx ecx, byte [r9 + 0x3c]
test cl, 0x40
jne 0x14008a7e8
mov eax, dword [rbx + 4]
and eax, 1
test cl, 8
je 0x14008a537
test eax, eax
je 0x14008a7e3
mov eax, dword [r13]
cmp dword [rbx + 0x34], eax
je 0x14008a543
mov r14, r13
jmp 0x14008a7e3
test eax, eax
jne 0x14008a7e3
mov eax, dword [r13]
mov qword [rsp + 0xa8], rdx
mov ecx, 3
mov word [rsp + 0xc4], cx
mov qword [rsp + 0xb0], r8
mov dword [rsp + 0xc8], eax
test rbx, rbx
je 0x14008a587
mov rdx, rbx
lea rcx, [rsp + 0xa0]
call fcn.140118230
movzx ecx, word [rsp + 0xc4]
xor r11d, r11d
mov r14, r13
test cx, cx
je 0x14008a7e3
test rbx, rbx
je 0x14008a5ae
mov rcx, qword [rdi]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call fcn.140090e90
mov rsi, rax
jmp 0x14008a5b1
mov rsi, r11
mov rbp, qword [rdi]
test r12, r12
jne 0x14008a5c6
mov r12, rsi
mov qword [rsp + 0x78], rsi
jmp 0x14008a7da
test rsi, rsi
je 0x14008a7da
mov eax, dword [r12 + 4]
lea r14, [rsi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x14008a5f7
mov eax, dword [r14]
and eax, 0x20000001
cmp eax, 0x20000000
jne 0x14008a71f
cmp byte [rdi + 0x12c], 2
jae 0x14008a71f
test rbp, rbp
je 0x14008a618
mov edx, 0x18
mov rcx, rbp
call fcn.1400c2ab0
jmp 0x14008a622
mov ecx, 0x18
call fcn.1400d87f0
mov rcx, rax
test rax, rax
je 0x14008a64c
mov rax, qword [rdi + 0xc0]
mov qword [rcx], rax
lea rax, [0x1400ca350]
mov qword [rdi + 0xc0], rcx
mov qword [rcx + 0x10], rax
mov qword [rcx + 8], r12
jmp 0x14008a657
mov rcx, qword [rdi]
mov rdx, r12
call fcn.1400ca360
mov rdx, rsi
mov rcx, rdi
call fcn.1400ca2d0
xor ebx, ebx
lea rdx, [rsp + 0x68]
lea rcx, [0x140148934]
mov dword [rsp + 0x68], ebx
call fcn.1400d2ea0
test eax, eax
mov rcx, rbp
mov eax, 2
cmove ebx, eax
mov edx, ebx
add rdx, 0x48
call fcn.1400c2ab0
mov qword [rsp + 0x78], rax
mov r12, rax
test rax, rax
je 0x14008a7d7
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 eax, 0xffffffff
mov word [r12 + 0x32], ax
mov byte [r12], 0x9b
test ebx, ebx
jne 0x14008a702
mov eax, dword [rsp + 0x68]
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 0x14008a7d7
lea rax, [r12 + 0x48]
mov qword [r12 + 8], rax
mov word [rax], gethostbyname
mov dword [r12 + 0x28], 1
jmp 0x14008a7d7
mov edx, 0x48
mov rcx, rbp
call fcn.1400c2ab0
mov rbx, rax
test rax, rax
je 0x14008a7b9
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
mov qword [rbx + 0x40], rax
mov eax, 0xffffffff
mov word [rbx + 0x32], ax
mov byte [rbx], 0x2c
mov qword [rbx + 0x18], rsi
mov edx, dword [r14]
and edx, 0x400208
or edx, dword [rbx + 4]
mov dword [rbx + 4], edx
mov ecx, dword [rsi + 0x28]
inc ecx
mov dword [rbx + 0x28], ecx
mov qword [rbx + 0x10], r12
mov eax, dword [r12 + 4]
and eax, 0x400208
or eax, edx
mov dword [rbx + 4], eax
mov eax, dword [r12 + 0x28]
cmp eax, ecx
jl 0x14008a798
inc eax
mov dword [rbx + 0x28], eax
mov rax, qword [rdi]
mov r8d, dword [rax + 0x94]
cmp dword [rbx + 0x28], r8d
jle 0x14008a7cf
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, rdi
call fcn.1400c5600
jmp 0x14008a7cf
mov rcx, qword [rdi]
mov rdx, r12
call fcn.1400ca360
mov rcx, qword [rdi]
mov rdx, rsi
call fcn.1400ca360
mov r12, rbx
mov qword [rsp + 0x78], rbx
mov r14, r13
mov ebp, dword [rsp + 0x50]
movzx esi, byte [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov r8d, dword [r14]
mov r9, qword [rsp + 0x130]
cmp dword [r15 + 0x1c], r8d
jne 0x14008a99d
test byte [r15 + 0x14], 0x82
je 0x14008a99d
movzx ecx, byte [r9 + 0x3c]
test cl, 0x58
je 0x14008a839
mov rax, qword [r15]
mov edx, dword [rax + 4]
test dl, 3
je 0x14008a921
cmp dword [rax + 0x34], r8d
jne 0x14008a921
test cl, 0x18
je 0x14008a839
test dl, 2
jne 0x14008a921
mov rax, qword [rsp + 0x138]
test qword [r15 + 0x28], rax
jne 0x14008a921
movsxd rax, dword [r15 + 0x20]
test eax, eax
js 0x14008a921
lea rdx, [rax + rax*2]
mov rax, qword [r9 + 0x20]
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0xc]
mov rcx, qword [r15]
call fcn.1400d4480
test eax, eax
je 0x14008a919
movsxd rcx, dword [r15 + 0x20]
cmp ecx, 0x40
jl 0x14008a88d
movabs rbx, 0x8000000000000000
jmp 0x14008a895
mov ebx, 1
shl rbx, cl
test sil, sil
jne 0x14008a8c7
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.140069a90
mov byte [rsp + 0x40], 1
mov r10, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
test r10, rbx
jne 0x14008a90f
mov rcx, qword [rdi]
lea esi, [rbp + 1]
mov r8d, esi
call fcn.14011ba30
test eax, eax
jne 0x14008b3eb
mov r10, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
or r10, rbx
movsxd rcx, ebp
mov ebp, esi
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x60], r10
mov rax, qword [rdx + 0x48]
mov qword [rax + rcx*8], r15
mov r9, qword [rsp + 0x130]
jmp 0x14008a92b
mov r9, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
mov rax, qword [rsp + 0x48]
movzx esi, byte [rsp + 0x40]
lea r8, [0x1400ea540]
add r15, 0x38
mov r11d, 0
cmp r15, rax
jb 0x14008a4f0
mov rcx, qword [rsp + 0x88]
movabs r8, 0x8000000000000000
mov word [rdx + 0x3c], bp
not r10
mov word [rdx + 0x18], bp
or r10, r8
mov dword [rdx + 0x38], 0x4241
mov r12d, 0x3f
movsx eax, word [rcx + 0x36]
mov edx, r11d
mov r9, qword [r9 + 0x50]
mov r8d, eax
and r10, r9
mov qword [rsp + 0x60], r10
cmp r12w, ax
jge 0x14008a9a9
mov ebx, r12d
jmp 0x14008a9b1
mov r10, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
jmp 0x14008a930
mov ebx, r8d
test r8d, r8d
jle 0x14008a9c8
mov ecx, ebp
mov eax, edx
inc ebp
bt r10, rax
cmovae ebp, ecx
inc edx
cmp edx, ebx
jl 0x14008a9b1
mov dword [rsp + 0x50], ebp
test r9, r9
jns 0x14008a9d7
add ebp, 0xffffffc1
add ebp, r8d
mov dword [rsp + 0x50], ebp
mov rcx, qword [rdi]
lea esi, [rbp + 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 r15, eax
test rcx, rcx
je 0x14008aa0e
mov rdx, r15
call fcn.1400c2ab0
jmp 0x14008aa16
mov rcx, r15
call fcn.1400d87f0
mov r14, rax
test rax, rax
je 0x14008b3eb
mov r8, r15
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov r9d, dword [rsp + 0x50]
lea rax, [r14 + 0x70]
mov r15, qword [rsp + 0x128]
lea rdx, [rax + rbp*8]
mov r11, qword [rsp + 0x88]
mov qword [r14 + 0x40], rax
lea eax, [r13 + 1]
movsxd rcx, eax
lea r13, str.BINARY
mov qword [r14 + 0x10], rdx
mov word [r14 + 0x60], si
mov word [r14 + 0x5e], r9w
lea rax, [rdx + rcx*2]
xor ecx, ecx
mov qword [r14 + 8], rax
lea rax, [rax + rbp*2]
mov qword [r14 + 0x38], rax
mov ebp, ecx
mov rax, qword [rsp + 0x58]
mov dword [rsp + 0x68], ecx
mov qword [rsp + 0x90], rcx
mov qword [rax + 0x20], r14
lea rax, str.auto_index
mov qword [r14], rax
mov rax, qword [rsp + 0x48]
mov qword [r14 + 0x18], r11
mov rsi, qword [r15 + 0x20]
cmp rsi, rax
jae 0x14008ac5e
mov r12, qword [rsp + 0x130]
mov r13d, ecx
mov qword [rsp + 0x68], rcx
nop word [rax + rax]
mov edx, dword [r12 + 0x44]
cmp dword [rsi + 0x1c], edx
jne 0x14008ac29
test byte [rsi + 0x14], 0x82
je 0x14008ac29
movzx ecx, byte [r12 + 0x3c]
test cl, 0x58
je 0x14008ab21
mov rax, qword [rsi]
mov r8d, dword [rax + 4]
test r8b, 3
je 0x14008ac24
cmp dword [rax + 0x34], edx
mov rax, qword [rsp + 0x48]
jne 0x14008ac29
test cl, 0x18
je 0x14008ab21
test r8b, 2
jne 0x14008ac29
mov rcx, qword [rsp + 0x138]
mov r15d, ebx
test qword [rsi + 0x28], rcx
jne 0x14008ac29
movsxd rax, dword [rsi + 0x20]
test eax, eax
js 0x14008ac24
lea rdx, [rax + rax*2]
mov rax, qword [r12 + 0x20]
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0xc]
mov rcx, qword [rsi]
call fcn.1400d4480
test eax, eax
je 0x14008ac24
mov edx, dword [rsi + 0x20]
cmp edx, 0x40
jl 0x14008ab78
movabs rax, 0x8000000000000000
jmp 0x14008ab82
mov ecx, edx
mov eax, 1
shl rax, cl
mov r8, qword [rsp + 0x90]
test r8, rax
jne 0x14008ac24
mov rcx, qword [rsi]
or r8, rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x90], r8
mov word [rax + r13], dx
test dword [rcx + 4], 0x400
je 0x14008abbd
mov rbx, qword [rcx + 0x10]
mov rdx, qword [rcx + 0x18]
jmp 0x14008abc5
mov rbx, qword [rcx + 0x18]
mov rdx, qword [rcx + 0x10]
test dword [rdx + 4], 0x200
jne 0x14008abec
test rbx, rbx
je 0x14008abdc
test dword [rbx + 4], 0x200
jne 0x14008abe9
mov rcx, rdi
call fcn.1400c9da0
test rax, rax
jne 0x14008abf9
mov rdx, rbx
mov rcx, rdi
call fcn.1400c9da0
test rax, rax
je 0x14008abfe
mov rcx, qword [rax]
jmp 0x14008ac05
lea rcx, str.BINARY
mov r8, qword [rsp + 0x68]
inc ebp
mov rax, qword [r14 + 0x40]
add r13, 2
mov ebx, r15d
mov qword [r8 + rax], rcx
add r8, 8
mov qword [rsp + 0x68], r8
mov rax, qword [rsp + 0x48]
add rsi, 0x38
cmp rsi, rax
jb 0x14008aad0
mov r9d, dword [rsp + 0x50]
lea r13, str.BINARY
mov r11, qword [rsp + 0x88]
mov r12d, 0x3f
mov r15, qword [rsp + 0x128]
xor ecx, ecx
mov dword [rsp + 0x68], ebp
test ebx, ebx
jle 0x14008aca3
mov r10, qword [rsp + 0x60]
movsxd rax, ebp
lea rdx, [rax*8]
lea r8, [rax + rax]
mov eax, ecx
bt r10, rax
jae 0x14008ac99
mov rax, qword [r14 + 8]
inc ebp
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [r14 + 0x40]
mov qword [rdx + rax], r13
add rdx, 8
inc ecx
cmp ecx, ebx
jl 0x14008ac76
mov dword [rsp + 0x68], ebp
mov rax, qword [rsp + 0x130]
cmp qword [rax + 0x50], 0
jge 0x14008acfe
cmp r12w, word [r11 + 0x36]
jge 0x14008acfe
movsxd rax, ebp
lea rcx, [rax*8]
lea rdx, [rax + rax]
nop dword [rax + rax]
mov rax, qword [r14 + 8]
lea rdx, [rdx + 2]
inc ebp
lea rcx, [rcx + 8]
mov word [rdx + rax - 2], r12w
inc r12d
mov rax, qword [r14 + 0x40]
mov qword [rcx + rax - 8], r13
movsx eax, word [r11 + 0x36]
cmp r12d, eax
jl 0x14008acd0
mov dword [rsp + 0x68], ebp
mov rax, qword [r14 + 8]
mov edx, 0xffffffff
movsxd rcx, ebp
xor r12d, r12d
mov rbp, qword [rsp + 0x140]
mov word [rax + rcx*2], dx
lea edx, [r9 + 1]
mov rax, qword [r14 + 0x40]
mov qword [rax + rcx*8], r13
mov r13, qword [rsp + 0x98]
mov eax, dword [rdi + 0x34]
mov dword [rbp + 8], eax
inc dword [rdi + 0x34]
movsxd rcx, dword [r13 + 0x90]
mov r8d, dword [rbp + 8]
cmp dword [r13 + 0x94], ecx
jg 0x14008ad68
mov r9d, edx
mov dword [rsp + 0x20], r12d
lea edx, [r12 + 0x74]
mov rcx, r13
call fcn.14009a470
lea rbx, [r13 + 0x88]
jmp 0x14008ad9a
lea eax, [rcx + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
lea rbx, [r13 + 0x88]
mov rax, qword [rbx]
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], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov rsi, qword [rdi + 0x10]
mov rdx, r14
mov rcx, rdi
call fcn.1400d7390
mov r8, rax
test rax, rax
je 0x14008adfb
mov rax, qword [rsi]
cmp byte [rax + 0x67], 0
je 0x14008addf
cmp qword [rax + 0x308], 0
jne 0x14008add6
add dword [r8], 0xffffffff
jne 0x14008add6
mov rcx, qword [r8 + 0x10]
mov rdx, r8
call fcn.1400c2b70
lea rbx, [r13 + 0x88]
jmp 0x14008adfb
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 [rdi]
test dword [rax + 0x60], 0x80000
jne 0x14008ae6d
mov edx, dword [rdi + 0x38]
inc edx
mov dword [rdi + 0x38], edx
mov dword [rbp + 0x34], edx
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jg 0x14008ae3f
mov r9d, edx
mov dword [rsp + 0x20], r12d
mov edx, 0x4d
mov r8d, 0x2710
mov rcx, r13
call fcn.14009a470
jmp 0x14008ae6d
lea eax, [rcx + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx]
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], r12d
mov qword [rax + rcx*8 + 0x10], r12
movzx eax, byte [rbp + 0x40]
imul rdx, rax, 0x68
mov rax, qword [r15]
mov r15, qword [rax + 8]
add r15, rdx
test byte [r15 + 0x48], 0x20
je 0x14008af87
movsxd r8, dword [r13 + 0x90]
mov ebp, dword [r15 + 0x3c]
mov dword [rsp + 0x70], r8d
cmp dword [r13 + 0x94], r8d
jg 0x14008aec0
xor r9d, r9d
mov dword [rsp + 0x20], r12d
xor r8d, r8d
mov rcx, r13
lea edx, [r9 + 0x47]
call fcn.14009a470
mov dword [rsp + 0x70], eax
jmp 0x14008aee8
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [r13 + 0x90], eax
mov rax, qword [rbx]
mov qword [rax + rcx*8], 0x47
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r12
movsxd rcx, dword [r13 + 0x90]
mov edx, dword [r15 + 0x38]
cmp dword [r13 + 0x94], ecx
jg 0x14008af14
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, ebp
mov rcx, r13
lea edx, [r9 + 0xb]
call fcn.14009a470
jmp 0x14008af3e
lea eax, [rcx + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx]
mov dword [rax + rcx*8], recvfrom
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r12
movsxd rsi, dword [r13 + 0x90]
cmp dword [r13 + 0x94], esi
jg 0x14008af69
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov r8d, ebp
mov rcx, r13
lea edx, [r9 + 0xc]
call fcn.14009a470
mov esi, eax
jmp 0x14008afdf
lea eax, [rsi + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rsi + rsi*2]
mov rax, qword [rbx]
mov dword [rax + rcx*8], recvfrom
mov dword [rax + rcx*8 + 4], ebp
jmp 0x14008afd1
movsxd rsi, dword [r13 + 0x90]
mov edx, dword [rbp + 4]
cmp dword [r13 + 0x94], esi
jg 0x14008afb5
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov r8d, edx
mov rcx, r13
lea edx, [r9 + 0x24]
call fcn.14009a470
mov esi, eax
jmp 0x14008afdf
lea eax, [rsi + 1]
mov dword [r13 + 0x90], eax
lea rcx, [rsi + rsi*2]
mov rax, qword [rbx]
mov dword [rax + rcx*8], 0x24
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 0x10], r12
mov qword [rax + rcx*8 + 8], 0
mov rbp, qword [rsp + 0x78]
mov eax, reloc.WS2_32.dll_recv
test rbp, rbp
je 0x14008b017
dec dword [rdi + 0x44]
mov r9d, eax
mov r8d, dword [rdi + 0x44]
mov rdx, rbp
mov rcx, rdi
mov dword [rsp + 0x80], r8d
call fcn.1400ca650
mov rax, qword [rsp + 0x58]
or dword [rax + 0x38], 0x20000
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x14008b028
inc dword [rdi + 0x38]
mov r12d, dword [rdi + 0x38]
jmp 0x14008b038
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov r12d, dword [rdi + rax*4 + 0xe0]
xor eax, eax
mov r9d, r12d
mov dword [rsp + 0x38], eax
mov rdx, r14
mov qword [rsp + 0x30], rax
mov rcx, rdi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x140]
mov r8d, dword [rax + 4]
call fcn.1400d20f0
mov r9, qword [rsp + 0x140]
mov r14d, eax
mov r8d, dword [r9 + 0x34]
test r8d, r8d
je 0x14008b109
mov rax, qword [rsp + 0x58]
movsxd rdx, dword [r13 + 0x90]
movzx ebp, word [rax + 0x18]
cmp dword [r13 + 0x94], edx
jg 0x14008b0b8
xor r9d, r9d
mov dword [rsp + 0x20], r14d
mov edx, 0xb4
mov rcx, r13
call fcn.14009a470
mov r9, qword [rsp + 0x140]
mov edx, eax
jmp 0x14008b0e7
lea rcx, [rdx + rdx*2]
xor r10d, r10d
lea eax, [rdx + 1]
mov dword [r13 + 0x90], eax
mov rax, qword [rbx]
mov dword [rax + rcx*8], 0xb4
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r10d
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], r10
mov rax, qword [r13]
cmp byte [rax + 0x67], 0
jne 0x14008b104
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rbx]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], ebp
mov rbp, qword [rsp + 0x78]
movsxd rcx, dword [r13 + 0x90]
mov edx, dword [r9 + 8]
cmp dword [r13 + 0x94], ecx
jg 0x14008b13a
mov r8d, edx
mov dword [rsp + 0x20], 0
mov edx, 0x8a
mov r9d, r12d
mov rcx, r13
call fcn.14009a470
jmp 0x14008b168
lea eax, [rcx + 1]
xor r8d, r8d
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx]
mov dword [rax + rcx*8], 0x8a
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
movsxd rdx, dword [r13 + 0x90]
test edx, edx
jle 0x14008b18b
mov rax, qword [rbx]
lea rcx, [rdx + rdx*2]
mov edx, reloc.WS2_32.dll_recv
mov word [rax + rcx*8 - 0x16], dx
mov edx, dword [r13 + 0x90]
test rbp, rbp
je 0x14008b1c1
mov r9, qword [r13 + 0x18]
mov ecx, dword [rsp + 0x80]
not ecx
mov eax, dword [r9 + 0x48]
add eax, dword [r9 + 0x44]
jns 0x14008b1b7
mov r8d, ecx
mov rdx, r13
mov rcx, r9
call fcn.1400adf90
jmp 0x14008b1c1
mov rax, qword [r9 + 0x50]
movsxd rcx, ecx
mov dword [rax + rcx*4], edx
test byte [r15 + 0x48], 0x20
lea rbp, [0x1401661a0]
je 0x14008b306
mov rax, qword [r13]
cmp byte [rax + 0x67], 0
je 0x14008b1e2
mov rcx, rbp
jmp 0x14008b1f2
movsxd rax, dword [rsp + 0x70]
lea rcx, [rax + rax*2]
mov rax, qword [rbx]
lea rcx, [rax + rcx*8]
mov eax, dword [rsp + 0x68]
add eax, r14d
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0x140]
mov rdx, qword [rdi + 0x10]
mov r11d, dword [r15 + 0x40]
mov r9d, dword [rax + 8]
mov r10d, dword [rax + 4]
mov rax, qword [rdx]
cmp byte [rax + 0x67], 0
je 0x14008b222
mov r8, rbp
jmp 0x14008b234
movsxd rax, esi
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea r8, [rax + rcx*8]
mov rax, qword [rdi]
mov ecx, dword [rdx + 0x90]
cmp byte [rax + 0x67], 0
jne 0x14008b2a6
cmp esi, ecx
jge 0x14008b2a6
sub ecx, esi
lea rdx, [r8 + 0xc]
xor r13d, r13d
mov r8d, ecx
lea edi, [r13 + 2]
cmp dword [rdx - 8], r10d
jne 0x14008b28c
movzx eax, byte [rdx - 0xc]
cmp al, 0x5e
jne 0x14008b280
mov ecx, dword [rdx - 4]
mov eax, dword [rdx]
add ecx, r11d
mov dword [rdx - 8], ecx
mov byte [rdx - 0xc], 0x50
mov dword [rdx - 4], eax
mov dword [rdx], r13d
mov word [rdx - 0xa], di
jmp 0x14008b28c
cmp al, 0x87
jne 0x14008b28c
mov byte [rdx - 0xc], 0x7e
mov dword [rdx - 8], r9d
add rdx, 0x18
sub r8, 1
jne 0x14008b257
mov rdi, qword [rsp + 0x120]
mov r13, qword [rsp + 0x98]
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jg 0x14008b2d7
xor eax, eax
mov r9d, esi
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, r13
lea edx, [rax + 9]
call fcn.14009a470
and dword [r15 + 0x48], 0xffffffdf
jmp 0x14008b385
lea eax, [rcx + 1]
xor edx, edx
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx]
mov qword [rax + rcx*8], 9
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
and dword [r15 + 0x48], 0xffffffdf
jmp 0x14008b385
mov rax, qword [rsp + 0x140]
lea edx, [rsi + 1]
movsxd rcx, dword [r13 + 0x90]
mov r8d, dword [rax + 4]
cmp dword [r13 + 0x94], ecx
jg 0x14008b33b
xor eax, eax
mov r9d, edx
mov rcx, r13
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x27]
call fcn.14009a470
jmp 0x14008b369
lea eax, [rcx + 1]
xor r9d, r9d
mov dword [r13 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx]
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 [r13 + 0x90]
test eax, eax
jle 0x14008b385
lea rcx, [rax + rax*2]
mov edx, 3
mov rax, qword [rbx]
mov word [rax + rcx*8 - 0x16], dx
mov rax, qword [r13]
mov edx, dword [r13 + 0x90]
cmp byte [rax + 0x67], 0
je 0x14008b39b
mov rax, rbp
jmp 0x14008b3a9
movsxd rax, esi
lea rcx, [rax + rax*2]
mov rax, qword [rbx]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
test r12d, r12d
je 0x14008b3c4
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14008b3c4
mov dword [rdi + rax*4 + 0xe0], r12d
inc byte [rdi + 0x1f]
mov rax, qword [r13]
mov edx, dword [r13 + 0x90]
cmp byte [rax + 0x67], 0
jne 0x14008b3e8
movsxd rax, dword [rsp + 0x84]
lea rcx, [rax + rax*2]
mov rax, qword [rbx]
lea rbp, [rax + rcx*8]
mov dword [rbp + 8], edx
mov rdx, qword [rsp + 0x78]
mov r15, qword [rsp + 0xd8]
mov r14, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xf8]
mov rbp, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x108]
test rdx, rdx
je 0x14008b435
mov rcx, qword [rdi]
call fcn.1400ca360
add rsp, 0x110
pop rdi
ret