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

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x108
mov rdi, qword [rcx]
lea rax, [rcx + 0x158]
movsxd r10, edx
xor r15d, r15d
imul rsi, r10, 0x58
mov qword [rsp + 0xc8], rax
mov r12, r8
movsxd r8, dword [rcx + 0x54]
add rsi, rcx
mov r14, qword [rdi + 0x10]
mov rbp, rcx
mov r13, qword [rdi]
mov edx, r15d
mov qword [rsp + 0x40], rdi
mov r9, qword [rsi + 0x388]
lea rax, [rsi + 0x340]
mov qword [rsp + 0x90], rax
movzx eax, byte [rsi + 0x36c]
imul rbx, rax, 0x78
mov qword [rsp + 0x68], r14
add rbx, qword [rcx + 8]
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x88], r9
mov r11d, dword [rbx + 0x50]
mov dword [rsp + 0x48], r11d
test r8, r8
jle 0x180145e77
mov ecx, r15d
lea rax, [rbp + 0x58]
nop dword [rax]
cmp dword [rax], r11d
je 0x180145f3f
inc edx
inc rcx
add rax, 4
cmp rcx, r8
jl 0x180145e60
mov rax, r15
mov edx, 1
not rax
mov ecx, r10d
and rax, r12
mov qword [rsi + 0x390], rax
mov r12, qword [rbp + 0x28]
shr r12, cl
and r12d, 1
test byte [r9 + 0x28], 0x40
mov qword [rsp + 0x58], r12
je 0x180145eb3
test byte [rbp + 0x34], 0x20
mov dword [rsp + 0x84], edx
je 0x180145ebb
mov dword [rsp + 0x84], r15d
mov rcx, r14
call fcn.18013f640
mov rcx, r14
mov dword [rsi + 0x350], eax
mov ebp, eax
mov dword [rsi + 0x34c], eax
call fcn.18013f640
lea r11, [rsi + 0x340]
mov dword [rsp + 0xa0], eax
mov r10, rsi
mov dword [rsi + 0x358], eax
cmp byte [rsi + 0x36c], r15b
jbe 0x180145f7d
test byte [rbx + 0x44], 8
je 0x180145f7d
mov edx, dword [rdi + 0x58]
inc edx
mov dword [rdi + 0x58], edx
mov dword [r11], edx
mov rax, qword [r14 + 0x30]
movsxd rcx, dword [r14 + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180145f50
xor r8d, r8d
mov dword [rsp + 0x20], r15d
mov r9d, edx
mov rcx, r14
lea edx, [r8 + 0x16]
call fcn.1800cfb00
mov r11, qword [rsp + 0x90]
mov r10, rsi
jmp 0x180145f7d
mov ecx, edx
mov edx, 1
mov eax, edx
shl rax, cl
jmp 0x180145e7f
lea eax, [rcx + 1]
mov dword [r14 + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 8]
mov word [rax + rcx*8], socket
mov byte [rax + rcx*8 + 3], r15b
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov r8d, dword [rbx + 0x48]
test r8b, 0x10
je 0x1801460aa
mov rax, qword [r14 + 0x30]
movsxd rcx, dword [r14 + 0x3c]
mov edi, dword [rbx + 0x3c]
mov edx, dword [rbx + 0x38]
cmp dword [rax + 0x64], ecx
jg 0x180145fb6
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, edi
mov rcx, r14
lea edx, [r9 + 0x10]
call fcn.1800cfb00
jmp 0x180145fe2
lea eax, [rcx + 1]
mov dword [r14 + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 8]
mov word [rax + rcx*8], reloc.WS2_32.dll_recv
mov byte [rax + rcx*8 + 3], r15b
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r15
mov rax, qword [r14 + 0x30]
movsxd rdx, dword [r14 + 0x3c]
cmp dword [rax + 0x64], edx
jg 0x18014600b
mov r9d, ebp
mov dword [rsp + 0x20], r15d
mov r8d, edi
mov edx, reloc.WS2_32.dll_select
mov rcx, r14
call fcn.1800cfb00
mov edx, eax
jmp 0x180146037
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r14 + 0x3c], eax
mov rax, qword [r14 + 8]
mov word [rax + rcx*8], reloc.WS2_32.dll_select
mov byte [rax + rcx*8 + 3], r15b
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov r10, rsi
mov dword [rsi + 0x374], edx
mov byte [rsi + 0x36d], select
mov r12, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x150]
lea r11, [rbp + 0x158]
mov esi, dword [r11 + 0x14]
mov rbx, qword [r11 + 0x20]
test esi, esi
jle 0x180147de5
lea r13, [r10 + 0x340]
nop dword [rax]
nop word [rax + rax]
movzx ecx, word [rbx + 0x1c]
mov edi, r15d
test cl, 6
jne 0x180147bf8
mov rax, qword [rbx + 0x30]
test qword [r10 + 0x390], rax
je 0x180147b6d
mov byte [rbp + 0x39], 1
jmp 0x180147bf8
mov r9, qword [rsp + 0x88]
mov edx, dword [r9 + 0x28]
bt edx, 0xa
jae 0x180146766
movzx esi, word [r9 + 0x2c]
inc dword [rdi + 0x78]
mov ecx, dword [rdi + 0x48]
mov edx, dword [rdi + 0x4c]
lea r8d, [rsi + 2]
mov dword [rsp + 0x168], edx
mov dword [rsp + 0x7c], r8d
cmp r8d, ecx
jg 0x1801460f2
lea eax, [rdx + r8]
sub ecx, r8d
mov dword [rdi + 0x4c], eax
mov dword [rdi + 0x48], ecx
jmp 0x180146105
mov eax, dword [rdi + 0x58]
lea edx, [rax + 1]
add eax, r8d
mov dword [rdi + 0x58], eax
mov dword [rsp + 0x168], edx
mov ebp, dword [r10 + 0x34c]
mov ebx, r15d
test esi, esi
je 0x180146197
mov r13, qword [rsp + 0x40]
lea r14d, [rdx + 2]
mov rdi, r15
mov rax, qword [r9 + 0x38]
mov rdx, qword [rdi + rax]
test rdx, rdx
je 0x180146173
test byte [rdx + 0x1a], 1
lea r8d, [r14 + rbx]
mov rcx, r13
je 0x18014615f
mov dword [rsp + 0x28], r8d
mov r9d, ebx
mov r8, r11
mov dword [rsp + 0x20], r12d
call fcn.18007e8a0
mov rax, qword [rsp + 0x50]
mov ebp, dword [rax + 0x350]
jmp 0x18014616b
mov rdx, qword [rdx]
mov rdx, qword [rdx + 0x18]
call fcn.1800fcab0
mov r9, qword [rsp + 0x88]
mov r11, qword [rsp + 0x90]
inc ebx
add rdi, 8
cmp ebx, esi
jl 0x180146123
mov r13, qword [rsp + 0xd0]
mov r14, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x40]
mov rax, qword [r14 + 0x30]
movsxd rcx, dword [r14 + 0x3c]
mov edx, dword [r9 + 0x18]
mov ebx, dword [rsp + 0x168]
cmp dword [rax + 0x64], ecx
jg 0x1801461c9
mov r8d, edx
mov dword [rsp + 0x20], r15d
mov edx, socket
mov r9d, ebx
mov rcx, r14
call fcn.1800cfb00
jmp 0x1801461f5
lea eax, [rcx + 1]
mov dword [r14 + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 8]
mov word [rax + rcx*8], socket
mov byte [rax + rcx*8 + 3], r15b
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov rax, qword [r14 + 0x30]
lea edx, [rbx + 1]
movsxd rcx, dword [r14 + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x18014621f
mov r9d, edx
mov dword [rsp + 0x20], r15d
mov edx, socket
mov r8d, esi
mov rcx, r14
call fcn.1800cfb00
jmp 0x18014624b
lea eax, [rcx + 1]
mov dword [r14 + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 8]
mov word [rax + rcx*8], socket
mov byte [rax + rcx*8 + 3], r15b
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov r9, qword [rsp + 0x88]
mov ecx, 0xfffffff5
mov eax, 0xfffffffe
cmp byte [r9 + 0x1c], r15b
lea edx, [rcx + 0x16]
cmovne eax, ecx
mov rcx, r14
mov dword [rsp + 0x30], eax
mov rax, qword [r9 + 0x20]
mov r9d, ebp
mov ebp, dword [rsp + 0x48]
mov r8d, ebp
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
call fcn.180135610
mov r10, qword [rsp + 0x50]
mov eax, 0x9a
mov r9, qword [rsp + 0x88]
mov r12d, 0xa0
mov r11, qword [rsp + 0x150]
mov byte [r9 + 0x1c], r15b
mov dword [r10 + 0x370], ebp
lea ebp, [rsi - 1]
cmp byte [r11 + 0x38], r15b
cmovne eax, r12d
mov byte [r10 + 0x36d], al
mov eax, dword [r14 + 0x3c]
mov dword [r10 + 0x374], eax
test ebp, ebp
js 0x180146738
movsxd rax, dword [r10 + 0x378]
lea r8d, [rbp + 2]
lea rcx, [rsi*8 - 8]
mov r12d, 0xffffffff
mov qword [rsp + 0x58], rcx
lea rdx, [rax + rax*2]
shl rdx, 2
add r8d, ebx
mov qword [rsp + 0xc0], rdx
mov dword [rsp + 0x158], r8d
jmp 0x180146325
mov r10, qword [rsp + 0x50]
mov rax, qword [r9 + 0x38]
mov rbx, qword [rcx + rax]
cmp ebp, 0x10
jae 0x1801463dc
movzx eax, word [r9 + 0x1e]
movzx ecx, bp
shr ax, cl
test al, 1
je 0x1801463d7
mov edx, r15d
test rbx, rbx
je 0x1801466fa
nop word [rax + rax]
movzx ecx, word [rbx + 0x1c]
test cl, 4
jne 0x1801466fa
cmp dword [r10 + 0x340], r15d
je 0x180146383
mov rax, qword [rbx]
test byte [rax + 4], 1
je 0x1801466fa
mov rax, qword [rbx + 0x30]
test qword [r10 + 0x390], rax
jne 0x1801466fa
test edx, edx
je 0x1801463a9
bt cx, 0xa
jae 0x1801463a9
mov eax, 0x200
or cx, ax
jmp 0x1801463ad
or cx, 4
mov word [rbx + 0x1c], cx
movsxd rax, dword [rbx + 8]
test eax, eax
js 0x1801466fa
mov rcx, qword [rbx + 0x20]
imul rbx, rax, 0x38
add rbx, qword [rcx + 0x20]
add byte [rbx + 0x1e], 0xff
jne 0x1801466fa
inc edx
jmp 0x180146360
mov rcx, qword [rsp + 0x58]
test byte [rbx + 0x1a], 1
je 0x1801466ff
cmp byte [r13 + 0x55], r15b
jne 0x180146495
mov rax, qword [r10 + 0x380]
sub rdx, 0xc
mov qword [rsp + 0xc0], rdx
mov ecx, dword [rax + rdx + 4]
test ecx, ecx
jns 0x180146411
mov ecx, dword [r14 + 0x3c]
dec ecx
mov rax, qword [r14]
cmp byte [rax + 0x55], r15b
je 0x180146423
lea rax, [0x1801eea88]
jmp 0x180146432
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov r10d, dword [rax + 0xc]
mov r9d, dword [rax + 8]
mov r8d, dword [rax + 4]
movzx edx, byte [rax]
mov rax, qword [r14 + 0x30]
movsxd rcx, dword [r14 + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x18014645d
mov rcx, r14
mov dword [rsp + 0x20], r10d
call fcn.1800cfb00
jmp 0x18014648d
lea eax, [rcx + 1]
mov dword [r14 + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 8]
mov byte [rax + rcx*8], dl
mov byte [rax + rcx*8 + 3], r15b
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r10d
mov qword [rax + rcx*8 + 0x10], r15
mov byte [rax + rcx*8 + 1], r15b
mov r8d, dword [rsp + 0x158]
mov rcx, qword [rdi]
cmp dword [rcx + 0x150], r15d
jne 0x1801464fc
mov eax, 0x48
cmp ax, word [rcx + 0x154]
jbe 0x1801464b7
inc dword [rcx + 0x164]
jmp 0x18014650b
mov rdi, qword [rcx + 0x170]
test rdi, rdi
jne 0x1801464cb
inc dword [rcx + 0x168]
jmp 0x18014650b
mov rax, qword [rdi]
mov qword [rcx + 0x170], rax
mov eax, dword [rcx + 0x158]
inc eax
mov dword [rcx + 0x158], eax
inc dword [rcx + 0x160]
cmp eax, dword [rcx + 0x15c]
jle 0x1801464f7
mov dword [rcx + 0x15c], eax
mov rsi, rdi
jmp 0x180146522
cmp byte [rcx + 0x55], r15b
jne 0x1801466fa
mov eax, 0x48
mov rdx, rax
call fcn.180082740
mov rdi, rax
mov rsi, rax
test rax, rax
je 0x1801466f2
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
mov rcx, rdi
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
mov qword [rdi + 0x40], rax
mov eax, 1
mov dword [rdi + 0x28], eax
mov byte [rdi], 0x4f
mov word [rdi + 0x32], r12w
call fcn.180087030
mov r12, qword [rsp + 0x40]
mov rax, qword [r12]
mov r8d, dword [rax + 0x78]
cmp dword [rdi + 0x28], r8d
jle 0x180146574
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r12
call fcn.1800fb3f0
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
mov qword [rdi + 0x10], rcx
cmp dword [r13 + 0x150], r15d
jne 0x1801465eb
mov eax, 0x49
cmp ax, word [r13 + 0x154]
jbe 0x1801465a0
inc dword [r13 + 0x164]
jmp 0x180146602
mov rcx, qword [r13 + 0x170]
test rcx, rcx
jne 0x1801465b5
inc dword [r13 + 0x168]
jmp 0x180146602
mov rax, qword [rcx]
mov qword [r13 + 0x170], rax
mov eax, dword [r13 + 0x158]
inc eax
mov dword [r13 + 0x158], eax
inc dword [r13 + 0x160]
cmp eax, dword [r13 + 0x15c]
jle 0x1801465e6
mov dword [r13 + 0x15c], eax
mov rdx, rcx
jmp 0x180146618
cmp byte [r13 + 0x55], r15b
je 0x1801465fd
lea rbx, [rsi + 0x18]
mov qword [rbx], r15
jmp 0x180146685
mov eax, 0x49
mov rdx, rax
mov rcx, r13
call fcn.180082740
mov rcx, rax
mov rdx, rax
test rax, rax
je 0x18014667e
xor eax, eax
lea rbx, [rsi + 0x18]
xorps xmm0, xmm0
mov r8d, 0xffffffff
movups xmmword [rcx], xmm0
xor r9d, r9d
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x30], xmm0
mov qword [rcx + 0x40], rax
lea rax, [rcx + 0x48]
mov qword [rcx + 8], rax
mov byte [rcx], 0x9d
mov word [rcx + 0x32], r8w
mov byte [rax], r15b
mov eax, 1
mov dword [rcx + 0x28], eax
mov eax, dword [rsp + 0x158]
mov qword [rbx], rdx
mov rdx, rdi
mov dword [rcx + 0x2c], eax
mov rcx, r12
mov rax, qword [rsp + 0x50]
mov r8d, dword [rax + 0x358]
call fcn.1800ff280
jmp 0x180146685
lea rbx, [rdi + 0x18]
mov qword [rbx], rax
test dword [rdi + 4], 0x4000
mov qword [rdi + 0x10], r15
jne 0x1801466d8
xor edx, edx
mov rcx, r13
call fcn.1800ff150
mov rdx, qword [rbx]
mov rcx, r13
call fcn.1800ff150
mov eax, dword [rdi + 4]
bt eax, 0x10
jae 0x1801466bf
mov rdx, qword [rdi + 8]
mov rcx, r13
call fcn.1800f83c0
mov eax, dword [rdi + 4]
mov rdx, qword [rdi + 0x20]
mov rcx, r13
bt eax, 0xb
jae 0x1801466d3
call fcn.18012df60
jmp 0x1801466d8
call fcn.1800ffe70
test dword [rdi + 4], 0x8000
jne 0x1801466ec
mov rdx, rdi
mov rcx, r13
call fcn.1800f83c0
mov r12d, 0xffffffff
mov r8d, dword [rsp + 0x158]
mov rcx, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x40]
sub rcx, 8
mov rdx, qword [rsp + 0xc0]
dec r8d
sub ebp, 1
mov r9, qword [rsp + 0x88]
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x158], r8d
jns 0x180146320
mov ebx, dword [rsp + 0x168]
mov r11d, dword [rsp + 0x7c]
mov edx, ebx
mov r8d, r11d
mov rcx, rdi
call fcn.1800fc570
cmp r11d, dword [rdi + 0x48]
jle 0x180146757
mov dword [rdi + 0x48], r11d
mov dword [rdi + 0x4c], ebx
call fcn.1800fc310
mov r10, qword [rsp + 0x50]
jmp 0x180146047
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x180146817
mov rax, qword [r9 + 0x38]
mov r8, r11
xor r9d, r9d
mov rcx, rdi
mov rdx, qword [rax]
inc dword [rdi + 0x58]
mov ebx, dword [rdi + 0x58]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r12d
call fcn.18007e8a0
mov r12, qword [rsp + 0x40]
mov edi, eax
cmp eax, ebx
je 0x1801467b4
mov edx, ebx
mov rcx, r12
call fcn.180128010
mov ebx, dword [rsi + 0x350]
mov r8d, edi
mov r9d, ebx
mov edx, 0x26
mov rcx, r14
call fcn.180135530
mov r8d, dword [rsp + 0x48]
mov r9d, ebx
mov edx, 0x46
mov dword [rsp + 0x20], edi
mov rcx, r14
call fcn.1801355a0
mov r8d, 1
mov edx, edi
mov rcx, r12
call fcn.1800fc570
mov edx, dword [rsp + 0x48]
mov r9d, edi
mov r8d, 0xffffffff
call fcn.1800fc7a0
mov r10, rsi
mov byte [rsi + 0x36d], 0xa0
jmp 0x18014604c
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x180146a2b
xor eax, eax
mov r12d, 0xa0
mov dword [rsp + 0x7c], eax
mov r15d, r12d
mov edi, eax
mov esi, eax
mov r14d, eax
test dl, 0x20
je 0x180146850
mov rax, qword [r9 + 0x38]
lea ecx, [rsi + 8]
mov r14, qword [rax]
jmp 0x180146853
mov rcx, rax
test dl, 0x10
je 0x180146860
mov rax, qword [r9 + 0x38]
mov rsi, qword [rcx + rax]
cmp dword [rsp + 0x58], edi
je 0x18014686f
mov rax, r14
mov r14, rsi
mov rsi, rax
test r14, r14
je 0x1801468f8
mov rbx, qword [r14]
lea r8, [rsp + 0x168]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x158], 0x413f4042
mov rdx, qword [rbx + 0x18]
call fcn.1800fec20
movzx ecx, byte [rbx]
mov r9d, ebp
mov r8d, dword [rsp + 0x48]
mov edi, eax
mov dword [rsp + 0x20], eax
movzx edx, byte [rsp + rcx + 0x108]
mov rcx, qword [rsp + 0x68]
call fcn.1801355a0
mov rcx, qword [rsp + 0x40]
mov r8d, 1
mov edx, edi
call fcn.1800fc570
mov edx, dword [rsp + 0x168]
call fcn.180128010
mov rcx, qword [rsp + 0x90]
mov rdx, r14
call fcn.1800831b0
mov edi, dword [rsp + 0x7c]
mov r14, qword [rsp + 0x58]
jmp 0x18014691f
mov r14, qword [rsp + 0x58]
mov edx, WSAGetLastError
mov r8d, dword [rsp + 0x48]
test r14d, r14d
mov rcx, qword [rsp + 0x68]
mov eax, 0x69
cmovne edx, eax
mov r9d, ebp
call fcn.180135530
test rsi, rsi
je 0x180146972
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsi]
mov rcx, rax
inc dword [rax + 0x58]
mov edi, dword [rax + 0x58]
mov r8d, edi
mov rdx, qword [rbx + 0x18]
call fcn.1800fcab0
movzx eax, byte [rbx]
sub al, 0x50
test al, 0xfd
je 0x180146954
lea r15d, [r14*2 + 0x50]
jmp 0x180146962
mov eax, r14d
xor eax, 1
lea r15d, [rax*2 + 0x51]
mov rcx, qword [rsp + 0x90]
mov rdx, rsi
call fcn.1800831b0
mov r10, qword [rsp + 0x50]
test r14d, r14d
mov rax, qword [rsp + 0x68]
mov esi, dword [rsp + 0x48]
mov r14, qword [rsp + 0x68]
mov ecx, dword [rax + 0x3c]
sete al
add al, 6
mov dword [r10 + 0x370], esi
cmp r15d, r12d
mov byte [r10 + 0x36d], al
mov r12, qword [rsp + 0x40]
mov dword [r10 + 0x374], ecx
je 0x180147b65
inc dword [r12 + 0x58]
mov r8d, esi
mov ebx, dword [r12 + 0x58]
mov edx, 0x67
mov r9d, ebx
mov rcx, r14
call fcn.180135530
mov r9d, ebx
mov r8d, 0xffffffff
mov edx, esi
mov rcx, r12
call fcn.1800fc7a0
mov r9d, ebp
mov dword [rsp + 0x20], ebx
mov r8d, edi
mov edx, r15d
mov rcx, r14
call fcn.1801355a0
mov rax, qword [r14]
xor r15d, r15d
mov r10, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x150]
cmp byte [rax + 0x55], r15b
jne 0x180146054
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
mov byte [rax + rcx*8 - 0x15], 0x53
jmp 0x180146054
bt edx, 9
jae 0x1801472ab
mov rax, qword [rsp + 0x50]
xor r11d, r11d
mov r10, qword [r9 + 0x20]
mov ebx, r11d
movzx edi, word [r9 + 0x18]
xor sil, sil
mov r14, r15
mov qword [rsp + 0x98], r15
mov eax, dword [rax + 0x348]
mov dword [rsp + 0x74], eax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0xb0], r15
mov byte [rsp + 0x158], bl
mov byte [rsp + 0x168], bl
test byte [rax + 0x34], 1
mov qword [rsp + 0xa8], r10
je 0x180146aa0
cmp byte [rax + 0x36], bl
jle 0x180146aa0
cmp word [r10 + 0x5e], di
jbe 0x180146aa0
mov sil, 1
lea ebx, [r11 + 1]
mov dword [rsp + 0x80], edi
mov rbp, rdi
mov r8, rdi
test dl, 0x20
je 0x180146aca
mov rax, qword [r9 + 0x38]
inc r8d
mov ebx, 1
mov r14, qword [rax + rdi*8]
mov qword [rsp + 0x98], r14
test dl, 0x10
je 0x180146b88
mov rax, qword [r9 + 0x38]
mov ecx, r8d
mov r8d, 1
mov ebx, r8d
mov r15, qword [rax + rcx*8]
mov eax, 0x100
mov qword [rsp + 0xb0], r15
test word [r15 + 0x1c], ax
je 0x180146b59
mov rcx, qword [rsp + 0x40]
mov r8d, r11d
mov rax, qword [rsp + 0x50]
mov edx, socket
mov r9d, dword [rcx + 0x58]
inc r9d
mov dword [rcx + 0x58], r9d
mov rcx, qword [rsp + 0x68]
mov dword [rax + 0x364], r9d
mov rax, qword [r10 + 0x38]
cmp byte [rax + rdi], bl
sete r8b
xor r8d, r12d
call fcn.180135530
mov rcx, qword [rsp + 0x68]
xor r11d, r11d
mov r10, qword [rsp + 0xa8]
mov eax, dword [rcx + 0x3c]
lea r8d, [r11 + 1]
mov rcx, qword [rsp + 0x50]
mov dword [rcx + 0x368], eax
test r14, r14
jne 0x180146b88
mov rax, qword [r10 + 8]
movsx rdx, word [rax + rdi*2]
test dx, dx
js 0x180146b88
mov rax, qword [r10 + 0x18]
movzx esi, sil
mov rcx, qword [rax + 8]
mov rax, rdx
shl rax, 5
cmp byte [rax + rcx + 0x18], r14b
cmove esi, r8d
movzx r8d, word [r10 + 0x5e]
cmp di, r8w
jae 0x180146ba6
mov rax, qword [r10 + 0x38]
mov edx, r11d
cmp byte [rdi + rax], 0
sete dl
cmp r12d, edx
je 0x180146bb1
test r12d, r12d
je 0x180146bd5
cmp r8w, di
jne 0x180146bd5
mov rax, r15
mov qword [rsp + 0xb0], r14
mov r15, r14
mov byte [rsp + 0x168], sil
mov r14, rax
mov qword [rsp + 0x98], rax
xor sil, sil
mov rdx, qword [rsp + 0x90]
lea rax, [rsp + 0xb8]
mov rcx, qword [rsp + 0x40]
mov r9d, ebx
mov r8d, r12d
mov qword [rsp + 0x20], rax
call fcn.18007d980
mov r8d, eax
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x180146c19
movzx edx, byte [rdi + rax]
mov byte [rsp + 0x158], dl
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x350]
mov dword [rsp + 0x60], eax
test r14, r14
je 0x180146c3e
test byte [r14 + 0x1a], 0x28
jne 0x180146c3e
xor eax, eax
mov r12d, eax
lea ecx, [rax + 1]
jmp 0x180146c48
mov ecx, 1
xor eax, eax
mov r12d, ecx
test r15, r15
je 0x180146c58
test byte [r15 + 0x1a], 0x28
mov dword [rsp + 0x70], eax
je 0x180146c5c
mov dword [rsp + 0x70], ecx
test r14, r14
jne 0x180146d17
test di, di
jne 0x180146d17
mov r15d, eax
mov ebx, ebp
test sil, sil
je 0x180146c97
mov rcx, qword [rsp + 0x68]
lea r9d, [r8 + rbp]
xor r8d, r8d
lea edx, [r8 + 0x19]
call fcn.180135530
inc ebx
xor r12d, r12d
lea r15d, [r12 + 1]
mov rdi, qword [rsp + 0xb8]
mov r8d, ebx
mov rcx, qword [rsp + 0x40]
mov r9, rdi
movzx eax, sil
mov esi, dword [rsp + 0x78]
sub r8d, eax
mov edx, esi
call fcn.18007de30
mov r9, qword [rsp + 0x88]
lea r14, [0x180000000]
movzx eax, word [r9 + 0x2e]
test ax, ax
je 0x180146cdd
cmp ebx, eax
je 0x180146dc4
mov r9d, dword [rsp + 0x60]
lea eax, [r12 + r15*2]
mov r12, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x74]
mov dword [rsp + 0x28], ebx
mov rbx, qword [rsp + 0x68]
lea ecx, [r12 + rax*2]
mov dword [rsp + 0x20], esi
movzx edx, byte [rcx + r14 + 0x1a64e0]
mov rcx, rbx
call fcn.180135730
jmp 0x180146dce
mov r15d, ecx
mov ebx, ebp
test r14, r14
je 0x180146c73
mov rax, qword [r14]
lea r14d, [r8 + rdi]
mov rcx, qword [rsp + 0x40]
mov r8d, r14d
mov rbp, qword [rax + 0x18]
mov rdx, rbp
call fcn.1800fcab0
mov r10, qword [rsp + 0x68]
mov r8, qword [rsp + 0x98]
mov rcx, r10
mov rdx, qword [rsp + 0x90]
call fcn.1801558b0
mov rcx, rbp
call fcn.1800fca40
test eax, eax
je 0x180146d7e
mov r9d, dword [rsp + 0x60]
mov r8d, r14d
mov edx, 0x4c
mov rcx, r10
call fcn.180135530
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x180146db6
add rdi, rcx
mov rcx, rbp
movzx edx, byte [rdi]
call fcn.1800f6270
cmp al, 0x41
jne 0x180146da4
mov byte [rdi], al
movzx edx, al
jmp 0x180146da7
movzx edx, byte [rdi]
mov rcx, rbp
call fcn.180100480
test eax, eax
je 0x180146db6
mov byte [rdi], 0x41
mov ebp, dword [rsp + 0x80]
inc ebx
jmp 0x180146c97
mov r12, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x68]
mov r15, qword [rsp + 0xb0]
test r15, r15
je 0x180147094
mov rax, qword [r15]
add ebp, esi
mov rcx, qword [rsp + 0x40]
mov r8d, 1
mov edx, ebp
mov rbx, qword [rax + 0x18]
call fcn.1800fc570
mov r8d, ebp
mov rdx, rbx
call fcn.1800fcab0
mov r10, qword [rsp + 0x68]
mov r8, r15
mov rdx, qword [rsp + 0x90]
mov rcx, r10
call fcn.1801558b0
mov rcx, rbx
call fcn.1800fca40
test eax, eax
je 0x180146e3e
mov r9d, dword [rsp + 0x60]
mov r8d, ebp
mov edx, 0x4c
mov rcx, r10
call fcn.180135530
movzx edx, byte [rsp + 0x158]
mov rcx, rbx
call fcn.1800f6270
cmp al, 0x41
je 0x180147035
movzx edx, byte [rsp + 0x158]
mov rcx, rbx
call fcn.180100480
test eax, eax
jne 0x180147035
lea ebx, [rax + 1]
mov rax, qword [rsp + 0x40]
lea rdi, [rsp + 0x158]
mov r14, qword [rax + 0x10]
cmp byte [rdi], 0x41
jne 0x180146e92
dec ebx
inc ebp
inc rdi
test ebx, ebx
jg 0x180146e82
cmp ebx, 1
jle 0x180146ea7
mov eax, ebx
cmp byte [rax + rdi - 1], 0x41
jne 0x180146eaf
dec ebx
cmp ebx, 1
jg 0x180146e97
test ebx, ebx
jle 0x180147026
mov rax, qword [r14 + 0x30]
movsxd rdx, dword [r14 + 0x3c]
cmp dword [rax + 0x64], edx
jg 0x180146edb
mov r9d, ebx
mov dword [rsp + 0x20], 0
mov r8d, ebp
mov edx, 0x30
mov rcx, r14
call fcn.1800cfb00
mov edx, eax
jmp 0x180146f0a
lea rcx, [rdx + rdx*2]
xor r8d, r8d
lea eax, [rdx + 1]
mov dword [r14 + 0x3c], eax
mov rax, qword [r14 + 8]
mov word [rax + rcx*8], 0x30
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
mov rsi, qword [r14]
cmp byte [rsi + 0x55], 0
je 0x180146fe3
lea r14, [0x180000000]
test rdi, rdi
je case.0x180146f40.19
lea eax, [rbx + 0x14]
cmp eax, 0x13
ja case.0x180146f40.19
cdqe
mov ecx, dword [r14 + rax*4 + 0x147edc]
add rcx, r14
jmp rcx
mov rdx, qword [rdi + 8]
test rdx, rdx
je case.0x180146f40.15
test byte [rdx + 2], 0x10
je case.0x180146f40.15
mov rcx, rsi
call fcn.1800f83c0
mov rdx, rdi
mov rcx, rsi
call fcn.1800f83c0
jmp case.0x180146f40.19
cmp qword [rsi + 0x290], 0
jne case.0x180146f40.19
mov rcx, rdi
call fcn.18011c410
jmp case.0x180146f40.19
cmp qword [rsi + 0x290], 0
jne case.0x180146f40.19
mov rcx, rdi
call fcn.180063ab0
jmp case.0x180146f40.19
test byte [rdi + 2], 0x10
je case.0x180146f40.19
mov rdx, rdi
mov rcx, rsi
call fcn.1800f83c0
jmp case.0x180146f40.19
cmp qword [rsi + 0x290], 0
jne 0x180146fc3
mov rcx, rdi
call fcn.180135370
jmp case.0x180146f40.19
cmp dword [rdi + 0x20], 0
je case.0x180146f40.15
mov rdx, qword [rdi + 0x18]
jmp 0x180146f51
cmp qword [rsi + 0x290], 0
jne case.0x180146f40.19
mov rcx, rdi
call fcn.180143940
jmp case.0x180146f40.19
test edx, edx
jns 0x180146fed
mov edx, dword [r14 + 0x3c]
dec edx
movsxd rax, edx
mov r8, rdi
mov rcx, r14
lea r9, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rdx, [rax + r9*8]
mov r9d, ebx
call fcn.18014e490
lea r14, [0x180000000]
mov rcx, qword [rsp + 0x40]
mov r8d, ebx
mov edx, ebp
call fcn.1800fc570
mov esi, dword [rsp + 0x78]
jmp 0x18014702d
lea r14, [0x180000000]
mov rdi, qword [rsp + 0xb8]
mov ebp, dword [rsp + 0x80]
inc ebp
mov ebx, dword [rsp + 0x70]
mov rdx, rdi
mov rcx, r13
call fcn.1800f83c0
mov rcx, qword [rsp + 0x68]
mov eax, dword [rcx + 0x3c]
mov rcx, qword [rsp + 0x50]
mov dword [rcx + 0x374], eax
test ebp, ebp
je 0x1801470b7
mov r9d, dword [rsp + 0x60]
lea eax, [rbx + r12*2]
movzx edx, byte [rax + r14 + 0x1a634c]
mov r14, qword [rsp + 0x68]
mov dword [rsp + 0x28], ebp
mov rcx, r14
mov ebp, dword [rsp + 0x74]
mov r8d, ebp
mov dword [rsp + 0x20], esi
call fcn.180135730
jmp 0x1801470c0
cmp byte [rsp + 0x168], 0
je 0x18014703e
xor r8d, r8d
lea r9d, [rsi + rbp]
mov rcx, rbx
lea edx, [r8 + 0x19]
call fcn.180135530
xor ebx, ebx
inc ebp
jmp 0x180147042
mov ebp, dword [rsp + 0x74]
mov r14, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
call fcn.1800831b0
mov rcx, qword [rsp + 0x90]
mov rdx, r15
call fcn.1800831b0
cmp dword [rsp + 0x84], 0
jne 0x18014715e
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rdx + 0x18]
test byte [rcx + 0x46], 0x20
jne 0x18014719a
mov rax, qword [rsp + 0x150]
cmp byte [rax + 0x38], 0
je 0x180147188
mov rdi, qword [rsp + 0x40]
mov r8d, ebp
mov edx, WSAStartup
mov rcx, r14
inc dword [rdi + 0x58]
mov ebx, dword [rdi + 0x58]
mov r9d, ebx
call fcn.180135530
mov edx, dword [rsp + 0x48]
mov r9d, ebx
mov r8d, 0xffffffff
mov rcx, rdi
call fcn.1800fc7a0
mov r8d, dword [rsp + 0x48]
xor r9d, r9d
mov rcx, r14
mov dword [rsp + 0x20], ebx
lea edx, [r9 + 0x46]
call fcn.1801355a0
xor r15d, r15d
mov rcx, qword [rsp + 0x88]
mov r10, qword [rsp + 0x50]
test dword [rcx + 0x28], 0x1000
je 0x180147271
mov byte [r10 + 0x36d], 0xa0
jmp 0x180147280
mov r8d, dword [rsp + 0x48]
mov r9d, ebp
mov rcx, rax
call fcn.18007e5b0
jmp 0x18014715e
cmp dword [rsp + 0x48], ebp
je 0x18014715e
call fcn.180126bf0
mov rcx, qword [rsp + 0x40]
mov rdi, rax
movzx edx, word [rax + 0x5e]
call fcn.180117dc0
xor r15d, r15d
mov esi, eax
movzx eax, word [rdi + 0x5e]
mov ebx, r15d
cmp r15w, ax
jae 0x180147247
mov r13, qword [rsp + 0xa8]
lea r12d, [r15 - 1]
nop dword [rax]
nop dword [rax + rax]
movzx r8d, word [r13 + 0x60]
mov edx, r15d
test r8d, r8d
je 0x180147211
mov rax, qword [rdi + 8]
mov r9, qword [r13 + 8]
movsxd rcx, ebx
movzx r10d, word [rax + rcx*2]
nop dword [rax]
movsxd rax, edx
cmp r10w, word [r9 + rax*2]
je 0x180147215
inc edx
cmp edx, r8d
jl 0x180147200
movzx edx, r12w
lea eax, [rbx + rsi]
movsx r9d, dx
mov edx, 0x2f
mov dword [rsp + 0x20], eax
mov r8d, ebp
mov rcx, r14
call fcn.1801355a0
movzx eax, word [rdi + 0x5e]
inc ebx
cmp ebx, eax
jl 0x1801471e0
mov r13, qword [rsp + 0xd0]
mov r12, qword [rsp + 0x58]
mov r9d, dword [rsp + 0xa0]
mov edx, 0x44
mov r8d, dword [rsp + 0x48]
mov rcx, r14
movzx eax, ax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
call fcn.180135730
jmp 0x180147161
test r12d, r12d
sete al
add al, 6
mov byte [r10 + 0x36d], al
mov dword [r10 + 0x370], ebp
movzx eax, byte [rcx + 0x2a]
and al, 1
mov byte [r10 + 0x36e], al
test byte [rcx + 0x28], 0xf
jne 0x180146047
mov byte [r10 + 0x36f], 1
jmp 0x180146047
bt edx, 0xd
jae 0x180147afc
mov eax, dword [rdi + 0x54]
xor r12d, r12d
inc dword [rdi + 0x58]
mov rcx, r14
mov dword [rsp + 0x80], eax
inc eax
mov dword [rdi + 0x54], eax
mov eax, dword [rdi + 0x58]
mov dword [rsp + 0x70], eax
mov qword [rsp + 0xa8], r15
mov dword [rsp + 0x168], r12d
mov dword [rsp + 0x74], r12d
call fcn.18013f640
mov rsi, qword [rbx + 0x28]
mov ebp, r12d
mov r9, qword [rsp + 0x88]
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0x78], r12d
mov qword [rsp + 0xb0], r12
mov rcx, qword [r9 + 0x38]
mov qword [rsp + 0xd8], rsi
mov rax, qword [rcx]
mov qword [rsp + 0xf0], rax
mov rcx, qword [rax + 0x10]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xc0], rcx
mov ecx, dword [rsp + 0x70]
mov byte [rax + 0x36d], select
mov dword [rax + 0x370], ecx
mov rax, qword [rsp + 0x150]
movzx ecx, byte [rax + 0x3b]
cmp cl, 1
jbe 0x1801474bf
mov edi, ecx
sub edi, dword [rsp + 0x158]
dec edi
movsxd rax, edi
imul rcx, rax, 0x78
sub rcx, 0xffffffffffffff80
test r13, r13
je 0x180147384
mov rdx, rcx
mov rcx, r13
call fcn.1800f8480
jmp 0x180147389
call fcn.18011da50
mov qword [rsp + 0x98], rax
mov rdx, rax
test rax, rax
jne 0x1801473a6
mov rax, qword [rsp + 0x160]
jmp 0x180147ec5
mov r11, qword [rsp + 0x150]
lea eax, [rdi + 1]
movzx ecx, al
mov dword [rdx + 4], ecx
mov dword [rdx], ecx
movups xmm0, xmmword [rbx + 8]
movups xmmword [rdx + 8], xmm0
movups xmm1, xmmword [rbx + 0x18]
movups xmmword [rdx + 0x18], xmm1
movups xmm0, xmmword [rbx + 0x28]
movups xmmword [rdx + 0x28], xmm0
movups xmm1, xmmword [rbx + 0x38]
movups xmmword [rdx + 0x38], xmm1
movups xmm0, xmmword [rbx + 0x48]
movups xmmword [rdx + 0x48], xmm0
movups xmm1, xmmword [rbx + 0x58]
movups xmmword [rdx + 0x58], xmm1
movups xmm0, xmmword [rbx + 0x68]
movups xmmword [rdx + 0x68], xmm0
movsd xmm1, qword [rbx + 0x78]
movsd qword [rdx + 0x78], xmm1
mov r10, qword [r11 + 8]
cmp edi, 1
jl 0x180147488
mov r8, qword [rsp + 0x50]
add r8, 0x3c4
mov r9d, edi
sub rdx, 0xffffffffffffff80
nop dword [rax + rax]
movzx eax, byte [r8]
lea rdx, [rdx + 0x78]
imul rcx, rax, 0x78
lea r8, [r8 + 0x58]
movups xmm0, xmmword [rcx + r10 + 8]
movups xmmword [rdx - 0x78], xmm0
movups xmm1, xmmword [rcx + r10 + 0x18]
movups xmmword [rdx - 0x68], xmm1
movups xmm0, xmmword [rcx + r10 + 0x28]
movups xmmword [rdx - 0x58], xmm0
movups xmm1, xmmword [rcx + r10 + 0x38]
movups xmmword [rdx - 0x48], xmm1
movups xmm0, xmmword [rcx + r10 + 0x48]
movups xmmword [rdx - 0x38], xmm0
movups xmm1, xmmword [rcx + r10 + 0x58]
movups xmmword [rdx - 0x28], xmm1
movups xmm0, xmmword [rcx + r10 + 0x68]
movups xmmword [rdx - 0x18], xmm0
movsd xmm1, qword [rcx + r10 + 0x78]
movsd qword [rdx - 8], xmm1
sub r9, 1
jne 0x180147420
mov rdi, qword [rsp + 0x40]
test byte [r11 + 0x34], 8
jne 0x180147524
test byte [rsi + 0x46], 0x20
jne 0x1801474d5
inc dword [rdi + 0x58]
xor r8d, r8d
mov eax, dword [rdi + 0x58]
mov rcx, r14
mov r9d, eax
mov dword [rsp + 0x168], eax
lea edx, [r8 + 0x19]
call fcn.180135530
jmp 0x18014751a
mov rax, qword [rax + 8]
mov r11, qword [rsp + 0x150]
mov qword [rsp + 0x98], rax
jmp 0x18014748d
mov rcx, rsi
call fcn.180126bf0
mov edi, dword [rdi + 0x54]
mov rbx, rax
mov rax, qword [rsp + 0x40]
mov r8d, edi
mov edx, 0x39
mov dword [rsp + 0x168], edi
lea ecx, [rdi + 1]
mov dword [rax + 0x54], ecx
mov rcx, r14
movzx r9d, word [rbx + 0x5e]
call fcn.180135530
mov rdi, qword [rsp + 0x40]
mov rdx, rbx
mov rcx, rdi
call fcn.180141eb0
inc dword [rdi + 0x58]
mov eax, dword [rdi + 0x58]
mov dword [rsp + 0x74], eax
mov r9d, dword [rsp + 0x70]
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 0x16]
call fcn.180135530
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0xc8]
cmp dword [rax + 0x14], 1
jle 0x18014760b
mov rsi, qword [rsp + 0xf0]
mov ebx, r12d
mov rdi, r12
mov r8d, 0x1fff
mov r15, rax
nop word [rax + rax]
mov rdx, qword [r15 + 0x20]
movsxd rax, ebx
imul rcx, rax, 0x38
mov r10, qword [rdi + rdx]
add rcx, rdx
cmp rcx, rsi
je 0x1801475c5
test byte [r10 + 4], 1
jne 0x1801475c5
test byte [rdi + rdx + 0x1c], 6
jne 0x1801475c5
test word [rdi + rdx + 0x1a], r8w
je 0x1801475c5
xor r9d, r9d
xor r8d, r8d
mov rdx, r10
mov rcx, r13
call fcn.1800867e0
mov r8, rax
mov rdx, rbp
mov rcx, r13
call fcn.1800fbb40
mov rbp, rax
mov r8d, 0x1fff
inc ebx
add rdi, 0x38
cmp ebx, dword [r15 + 0x14]
jl 0x180147570
mov rdi, qword [rsp + 0x40]
mov r15, r12
mov qword [rsp + 0xb0], rbp
test rbp, rbp
je 0x180147610
mov r9, rbp
mov qword [rsp + 0x20], r12
xor r8d, r8d
mov edx, 0x148
mov rcx, rdi
call fcn.18011e900
mov rbp, rax
mov qword [rsp + 0xb0], rax
jmp 0x180147610
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0xc0]
xor ecx, ecx
mov r12d, 0xf0
mov dword [rsp + 0x84], ecx
mov dword [rsp + 0x60], r12d
mov esi, ecx
lea ebx, [rcx - 1]
cmp dword [rax + 0x14], ecx
jle 0x180147a0e
mov r13, qword [rsp + 0xd8]
mov r15d, ecx
mov edx, dword [rsp + 0x48]
mov qword [rsp + 0xe8], rcx
mov rax, qword [rax + 0x20]
cmp dword [r15 + rax + 0xc], edx
je 0x18014766e
mov r8d, 0x400
test word [r15 + rax + 0x1a], r8w
je 0x1801479ce
mov r8, qword [r15 + rax]
mov ebx, ecx
mov dword [rsp + 0x88], ecx
test rbp, rbp
je 0x18014768e
test byte [r8 + 4], 1
jne 0x18014768e
mov qword [rbp + 0x10], r8
mov r8, rbp
mov eax, dword [rsp + 0x80]
xor r9d, r9d
mov rdx, qword [rsp + 0x98]
mov dword [rsp + 0x30], eax
mov word [rsp + 0x28], r12w
mov qword [rsp + 0x20], rcx
mov rcx, rdi
call fcn.180144d20
mov qword [rsp + 0xd8], rax
mov rdi, rax
test rax, rax
je 0x1801479c8
mov rax, qword [rsp + 0x50]
lea r8, [rdi + 0x340]
mov r9d, dword [rsp + 0x158]
mov rdx, qword [rsp + 0x98]
movzx ecx, byte [rax + 0x36c]
xor eax, eax
mov word [rsp + 0x28], ax
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0x40]
call fcn.1801488b0
mov rax, qword [rsp + 0x150]
test byte [rax + 0x34], 8
jne 0x1801478f4
mov rcx, qword [rsp + 0xc0]
mov r12d, esi
mov eax, dword [rcx + 0x14]
mov ecx, 0xffffffff
dec eax
cmp esi, eax
cmove r12d, ecx
test byte [r13 + 0x46], 0x20
mov dword [rsp + 0xb8], r12d
jne 0x180147789
mov eax, dword [rsp + 0x74]
mov r8d, ecx
mov rcx, qword [rsp + 0x40]
mov rdx, r13
mov r9d, dword [rsp + 0x48]
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x20], eax
call fcn.1800fcf40
mov r8d, dword [rsp + 0x168]
xor r9d, r9d
mov edx, 0x83
mov dword [rsp + 0x28], r12d
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.180135730
mov ebx, eax
jmp 0x1801478ef
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x1801477a4
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x1801477a4
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180147792
mov rdx, qword [rsp + 0x40]
movzx ebp, word [rbx + 0x5e]
mov ecx, dword [rdx + 0x48]
mov r15d, dword [rdx + 0x4c]
cmp ebp, ecx
jg 0x1801477c6
lea eax, [r15 + rbp]
sub ecx, ebp
mov dword [rdx + 0x4c], eax
mov dword [rdx + 0x48], ecx
jmp 0x1801477d2
mov eax, dword [rdx + 0x58]
lea r15d, [rax + 1]
add eax, ebp
mov dword [rdx + 0x58], eax
xor edi, edi
mov r14, rbp
test ebp, ebp
je 0x180147827
mov ebp, dword [rsp + 0x48]
mov esi, r15d
mov r12, rdx
nop word [rax + rax]
mov rax, qword [rbx + 8]
mov r9d, ebp
mov rdx, r13
mov dword [rsp + 0x20], esi
mov rcx, r12
movsx r8d, word [rax + rdi*2]
call fcn.1800fd1e0
inc esi
inc rdi
cmp rdi, r14
jl 0x1801477f0
mov r12d, dword [rsp + 0xb8]
mov ebp, r14d
mov esi, dword [rsp + 0x84]
mov r14, qword [rsp + 0x68]
test r12d, r12d
je 0x18014785a
mov r8d, dword [rsp + 0x168]
xor r9d, r9d
mov dword [rsp + 0x28], ebp
mov rcx, r14
mov dword [rsp + 0x20], r15d
lea edx, [r9 + 0x45]
call fcn.180135730
mov ebx, eax
test r12d, r12d
js 0x1801478bb
jmp 0x180147861
mov ebx, dword [rsp + 0x88]
mov edi, dword [rsp + 0x74]
mov r9d, ebp
mov r8d, r15d
mov dword [rsp + 0x20], edi
mov edx, 0x31
mov rcx, r14
call fcn.1801355a0
mov r8d, dword [rsp + 0x168]
mov r9d, edi
mov edx, WSAGetLastError
mov dword [rsp + 0x20], 0
mov rcx, r14
call fcn.1801355a0
test r12d, r12d
je 0x1801478bb
mov rax, qword [r14]
cmp byte [rax + 0x55], 0
jne 0x1801478bb
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
mov byte [rax + rcx*8 - 0x15], 0x10
mov rcx, qword [rsp + 0x40]
mov r8d, ebp
mov edx, r15d
call fcn.1800fc570
mov rdi, qword [rsp + 0xd8]
cmp ebp, dword [rcx + 0x48]
jle 0x1801478df
mov dword [rcx + 0x48], ebp
mov dword [rcx + 0x4c], r15d
mov rbp, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xe8]
mov r12d, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x7c]
mov edx, select
mov r8d, dword [rsp + 0x70]
mov rcx, r14
call fcn.180135530
test ebx, ebx
je 0x18014794b
mov rax, qword [r14 + 0x30]
mov ecx, dword [r14 + 0x3c]
dec ecx
mov dword [rax + 0x6c], ecx
mov rax, qword [r14]
mov edx, dword [r14 + 0x3c]
cmp byte [rax + 0x55], 0
je 0x180147932
lea rax, [0x1801eea88]
jmp 0x180147948
lea eax, [rdx - 1]
test ebx, ebx
cmovns eax, ebx
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
cmp byte [rdi + 0x39], 0
mov ecx, 1
mov eax, dword [rsp + 0x78]
mov rdx, qword [rdi + 0x388]
cmovne eax, ecx
mov dword [rsp + 0x78], eax
mov eax, 0x200
test dword [rdx + 0x28], eax
je 0x1801479b4
test esi, esi
je 0x180147982
mov rax, qword [rsp + 0xa8]
cmp qword [rdx + 0x20], rax
jne 0x1801479b4
test byte [r13 + 0x46], 0x20
je 0x180147998
mov rax, qword [rdx + 0x20]
mov ecx, dword [rax + 0x64]
and cl, 3
cmp cl, 2
je 0x1801479b4
mov rbx, qword [rdx + 0x20]
mov eax, 0x1000
or r12w, ax
mov qword [rsp + 0xa8], rbx
mov dword [rsp + 0x60], r12d
jmp 0x1801479c0
mov qword [rsp + 0xa8], 0
mov rcx, rdi
call fcn.180147f30
mov edx, dword [rsp + 0x48]
xor ecx, ecx
mov rax, qword [rsp + 0xc0]
inc esi
mov rdi, qword [rsp + 0x40]
add r15, 0x38
mov dword [rsp + 0x84], esi
mov qword [rsp + 0xe8], r15
cmp esi, dword [rax + 0x14]
jl 0x180147651
mov r13, qword [rsp + 0xd0]
mov ebx, 0xffffffff
mov r15, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x50]
mov qword [r8 + 0x378], r15
test r15, r15
je 0x180147a2d
mov eax, dword [rsp + 0x80]
mov dword [r8 + 0x348], eax
xor r15d, r15d
test rbp, rbp
je 0x180147a49
mov rdx, rbp
mov qword [rbp + 0x10], r15
mov rcx, r13
call fcn.1800ff150
mov r8, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x58]
mov edx, dword [r14 + 0x3c]
test ecx, ecx
jns 0x180147a58
lea ecx, [rdx - 1]
mov rax, qword [r14]
cmp byte [rax + 0x55], 0
je 0x180147a6a
lea rax, [0x1801eea88]
jmp 0x180147a79
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 4], edx
mov rcx, r14
mov edx, dword [r8 + 0x34c]
call fcn.18013e860
mov r8, qword [r14 + 0x30]
mov rdx, qword [r8 + 0x88]
test rdx, rdx
je 0x180147aa9
sub ebx, dword [rsp + 0x7c]
mov eax, dword [r14 + 0x3c]
movsxd rcx, ebx
mov dword [rdx + rcx*4], eax
mov eax, dword [r14 + 0x3c]
mov rbp, qword [rsp + 0x150]
dec eax
mov dword [r8 + 0x6c], eax
cmp byte [rbp + 0x3b], 1
jbe 0x180147ad1
mov rdx, qword [rsp + 0x98]
mov rcx, r13
call fcn.1800f83c0
cmp dword [rsp + 0x78], 0
jne 0x180147aed
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x90]
call fcn.1800831b0
mov r12, qword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
jmp 0x180146054
test r8b, 0x20
je 0x180147b12
mov byte [r10 + 0x36d], 0xa0
mov r12, rdi
jmp 0x18014604c
lea rdx, [0x180000000]
mov r9d, ebp
movzx eax, byte [r12 + rdx + 0x1a64dc]
mov rcx, r14
movzx edx, byte [r12 + rdx + 0x1a64e8]
mov byte [r10 + 0x36d], al
mov eax, dword [rsp + 0x48]
mov r8d, eax
mov dword [r10 + 0x370], eax
call fcn.180135530
inc eax
mov byte [rsi + 0x36f], 1
mov dword [rsi + 0x374], eax
mov r10, rsi
mov r12, rdi
jmp 0x18014604c
xor r15d, r15d
jmp 0x18014604c
cmp dword [r13], 0
mov rbp, qword [rbx]
je 0x180147b7d
test byte [rbp + 4], 1
je 0x180147bf8
bt cx, 9
jae 0x180147b9a
mov r8d, dword [r10 + 0x364]
mov edx, 0x2e
mov rcx, r14
call fcn.1801354c0
mov edi, eax
mov r8d, dword [rsp + 0xa0]
mov r9d, reloc.WS2_32.dll_recv
mov rdx, rbp
mov rcx, r12
call fcn.1800ff280
test edi, edi
je 0x180147bf3
mov edx, dword [r14 + 0x3c]
mov rcx, qword [r14 + 0x30]
dec edx
mov dword [rcx + 0x6c], edx
mov rax, qword [r14]
mov edx, dword [r14 + 0x3c]
cmp byte [rax + 0x55], 0
je 0x180147bda
lea rax, [0x1801eea88]
jmp 0x180147bf0
lea eax, [rdx - 1]
test edi, edi
cmovns eax, edi
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
or word [rbx + 0x1c], 4
mov r10, qword [rsp + 0x50]
dec esi
mov rbp, qword [rsp + 0x150]
add rbx, 0x38
test esi, esi
jg 0x180146080
mov r11, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xd0]
mov esi, dword [r11 + 0x14]
mov rbx, qword [r11 + 0x20]
test esi, esi
jle 0x180147de5
lea rdi, [rbx + 0x1a]
nop word [rax + rax]
test byte [rdi + 2], 6
jne 0x180147dcf
movzx eax, word [rdi]
mov edx, 0xb
test al, 0x82
setne cl
bt ax, dx
setb al
test al, cl
je 0x180147dcf
mov eax, dword [rsp + 0x48]
cmp dword [rdi - 0xe], eax
jne 0x180147dcf
mov rcx, qword [rsp + 0x90]
cmp dword [rcx], 0
jne 0x180147dcf
mov r9, qword [rsp + 0x160]
mov edx, eax
mov r8d, dword [rdi - 0xa]
mov rcx, r11
mov rbp, qword [rdi - 0x1a]
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x83
call fcn.180148e30
mov r14, rax
test rax, rax
je 0x180147dcf
test byte [rax + 0x1c], 4
jne 0x180147dcf
test r13, r13
je 0x180147d66
cmp dword [r13 + 0x150], 0
jne 0x180147d49
mov eax, 0x48
cmp ax, word [r13 + 0x154]
jbe 0x180147cf6
inc dword [r13 + 0x164]
mov edx, eax
mov rcx, r13
call fcn.180082740
jmp 0x180147d70
mov rbx, qword [r13 + 0x170]
test rbx, rbx
jne 0x180147d16
inc dword [r13 + 0x168]
mov rdx, rax
mov rcx, r13
call fcn.180082740
jmp 0x180147d70
mov rax, qword [rbx]
mov qword [r13 + 0x170], rax
mov eax, dword [r13 + 0x158]
inc eax
mov dword [r13 + 0x158], eax
inc dword [r13 + 0x160]
cmp eax, dword [r13 + 0x15c]
jle 0x180147d73
mov dword [r13 + 0x15c], eax
jmp 0x180147d73
cmp byte [r13 + 0x55], 0
je 0x180147d55
mov rbx, r15
jmp 0x180147d73
mov eax, 0x48
mov rcx, r13
mov edx, eax
call fcn.180082740
jmp 0x180147d70
mov ecx, 0x48
call fcn.18011da50
mov rbx, rax
test rbx, rbx
je 0x180147dcf
mov rcx, qword [r14]
mov r9d, reloc.WS2_32.dll_recv
mov r8d, dword [rsp + 0xa0]
mov rdx, rbx
movups xmm0, xmmword [rcx]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rbx + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rbx + 0x30], xmm1
movsd xmm0, qword [rcx + 0x40]
mov rcx, r12
movsd qword [rbx + 0x40], xmm0
mov rax, qword [rbp + 0x10]
mov qword [rbx + 0x10], rax
call fcn.1800ff280
mov rdx, rbx
mov rcx, r13
call fcn.1800f83c0
mov r11, qword [rsp + 0xc8]
dec esi
add rdi, 0x38
test esi, esi
jg 0x180147c40
mov rax, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x50]
mov r9d, dword [rax]
test r9d, r9d
je 0x180147ebe
mov r11, qword [rsp + 0x68]
mov eax, dword [r11 + 0x3c]
mov dword [rdi + 0x35c], eax
mov rax, qword [r11 + 0x30]
movsxd r10, dword [r11 + 0x3c]
cmp dword [rax + 0x64], r10d
jg 0x180147e33
mov edx, socket
mov dword [rsp + 0x20], r15d
mov rcx, r11
lea r8d, [rdx - 0x15]
call fcn.1800cfb00
jmp 0x180147e65
lea rcx, [r10 + r10*2]
lea eax, [r10 + 1]
mov dword [r11 + 0x3c], eax
mov rax, qword [r11 + 8]
mov word [rax + rcx*8], socket
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, r12
call fcn.1800fc120
mov rsi, qword [rsp + 0xc8]
cmp dword [rsi + 0x14], 0
mov rbx, qword [rsi + 0x20]
jle 0x180147ebe
nop
test byte [rbx + 0x1c], 6
jne 0x180147eb1
mov rax, qword [rbx + 0x30]
test qword [rdi + 0x390], rax
jne 0x180147eb1
mov r8d, dword [rsp + 0xa0]
mov r9d, reloc.WS2_32.dll_recv
mov rdx, qword [rbx]
mov rcx, r12
call fcn.1800ff280
or word [rbx + 0x1c], 4
inc r15d
add rbx, 0x38
cmp r15d, dword [rsi + 0x14]
jl 0x180147e80
mov rax, qword [rdi + 0x390]
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret