Function at 0x140149230
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
mov r12, rcx
mov rbx, rcx
mov r15, rcx
mov qword [rsp + 0x118], rcx
xor r13d, r13d
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], shutdown
mov byte [rsp + 0x20], r13b
lea rdi, [0x1402be8a0]
nop word [rax + rax]
movzx eax, byte [r12 + 0x50]
nop
test al, al
jne 0x140148b44
cmp qword [r12 + 0x28], 0
je 0x14014889a
movzx ecx, byte [r12 + 0x38]
test cl, cl
je 0x14014879a
call fcn.140152ae0
lea rdx, [r12 + 0x18]
cmp qword [r12 + 0x30], 0x10
jb 0x1401487ac
mov rdx, qword [r12 + 0x18]
mov r8, qword [r12 + 0x28]
mov rcx, rdi
call fcn.1400066f0
mov rax, qword [0x1402be8a0]
movsxd rcx, dword [rax + 4]
mov rsi, qword [rcx + rdi + 0x48]
test rsi, rsi
je 0x14014888b
mov qword [rsp + 0x78], rdi
mov rcx, rsi
mov rax, qword [rsi]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [0x1402be8a0]
movsxd rcx, dword [rax + 4]
cmp dword [rcx + rdi + 0x10], 0
je 0x1401487f6
xor al, al
jmp 0x140148821
mov rcx, qword [rcx + rdi + 0x50]
test rcx, rcx
je 0x14014881f
cmp rcx, rdi
je 0x14014881f
call fcn.140021400
mov rax, qword [0x1402be8a0]
movsxd rcx, dword [rax + 4]
cmp dword [rcx + rdi + 0x10], 0
sete al
jmp 0x140148821
mov al, 1
mov byte [rsp + 0x80], al
test al, al
je 0x14014885d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x68]
cmp eax, 0xffffffff
jne 0x14014885d
mov rax, qword [0x1402be8a0]
movsxd rcx, dword [rax + 4]
mov eax, dword [rcx + rdi + 0x10]
and eax, 0x13
or eax, 4
mov dword [rcx + rdi + 0x10], eax
and eax, dword [rcx + rdi + 0x14]
jne 0x140148b94
call fcn.14019d678
test al, al
jne 0x14014886f
mov rcx, rdi
call fcn.14001ac00
nop
mov rax, qword [0x1402be8a0]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rcx + rdi + 0x48]
test rcx, rcx
je 0x14014888b
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
cmp byte [r12 + 0x38], 0
je 0x14014889a
xor ecx, ecx
call fcn.140152ae0
lea rcx, [rbx + 0xa0]
call fcn.14019e734
test eax, eax
jne 0x140148bef
cmp qword [rbx + 0x90], 0
jne 0x1401488fa
nop dword [rax + rax]
cmp byte [rbx + 0x98], 0
jne 0x1401488e8
lea rcx, [rbx + 0xf0]
lea rdx, [rbx + 0xa0]
call fcn.14019e9d4
cmp qword [rbx + 0x90], 0
je 0x1401488c0
jmp 0x1401488fa
lea rcx, [rbx + 0xa0]
call fcn.14019e794
nop
jmp 0x140148b44
mov rcx, qword [r15 + 0x80]
dec rcx
and rcx, qword [r15 + 0x88]
mov rax, qword [r15 + 0x78]
mov rsi, qword [rax + rcx*8]
lea rax, [rsp + 0x20]
cmp rax, rsi
je 0x14014898d
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x14014895a
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140148955
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140148bf6
call fcn.1401c1ed8
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], shutdown
mov byte [rsp + 0x20], 0
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x20], xmm0
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rsp + 0x30], xmm1
mov qword [rsi + 0x10], r13
mov qword [rsi + 0x18], shutdown
mov byte [rsi], 0
mov rcx, qword [r15 + 0x80]
dec rcx
and rcx, qword [r15 + 0x88]
mov rax, qword [r15 + 0x78]
mov rsi, qword [rax + rcx*8]
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x1401489e0
mov rcx, qword [rsi]
inc rdx
cmp rdx, 0x1000
jb 0x1401489db
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140148bf6
mov rcx, r8
call fcn.1401c1ed8
mov qword [rsi + 0x10], r13
mov qword [rsi + 0x18], shutdown
mov byte [rsi], 0
sub qword [r15 + 0x90], 1
jne 0x140148a02
mov qword [r15 + 0x88], r13
jmp 0x140148a09
inc qword [r15 + 0x88]
cmp byte [rbx + 0x98], 0
je 0x140148a2a
cmp qword [rbx + 0x90], 0
jne 0x140148a2a
lea rcx, [rbx + 0x138]
call fcn.14019e860
jmp 0x140148a36
lea rcx, [rbx + 0x138]
call fcn.14019e8d4
lea rcx, [rbx + 0xa0]
call fcn.14019e794
nop
mov cl, 1
call fcn.14019f2a8
mov rsi, rax
mov qword [rsp + 0xa0], rax
mov eax, 0x48
mov word [rsp + 0x40], ax
mov qword [rsp + 0x50], rsi
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + reloc.WS2_32.dll_htonl]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x128], rax
movzx eax, word [rsp + 0x40]
mov word [rsp + 0x58], ax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x68], rcx
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x20]
call fcn.14000aca0
movzx eax, word [rsp + 0x40]
mov word [rsp + 0x58], ax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x68], rcx
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x20]
call fcn.14000ab50
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140148af1
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x140148af1
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
test rax, rax
je 0x140148b0d
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
cmp qword [rsp + 0x30], 0
je 0x140148b24
mov rax, qword [r12]
lea rdx, [rsp + 0x20]
mov rcx, r12
call qword [rax]
nop
jmp 0x140148770
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x140148b81
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140148b7c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140148bfc
call fcn.1401c1ed8
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test al, 4
je 0x140148ba1
lea rbx, str.ios_base::badbit_set
jmp 0x140148bb5
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x88]
call fcn.140027d10
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0xa8]
call fcn.14000eb20
lea rdx, [0x1402a9b68]
lea rcx, [rsp + 0xa8]
call fcn.1401c33cc
nop
mov ecx, eax
call fcn.14019ee98
call fcn.1401c85ec
nop
call fcn.1401c85ec
int3
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
movzx edi, r9b
movzx esi, dl
mov rbx, rcx
add rcx, 0x18
cmp rcx, r8
je 0x140149268
mov rdx, r8
cmp qword [r8 + 0x18], 0x10
jb 0x14014925f
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.14001bb80
mov byte [rbx + 0x38], dil
lea rcx, [rbx + 0x50]
call fcn.1401491a0
test sil, sil
je 0x1401492ed
mov ecx, 0x10
call fcn.1401c1e9c
xor edi, edi
test rax, rax
je 0x14014929b
lea rcx, [0x140148720]
mov qword [rax], rcx
mov qword [rax + 8], rbx
jmp 0x14014929e
mov rax, rdi
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x140147760]
xor edx, edx
xor ecx, ecx
call fcn.1401d3110
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140149304
cmp dword [rbx + 0x10], 0
jne 0x140149313
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rbx + 8], xmm0
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
mov rcx, rbx
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
jmp 0x140148720
mov dword [rsp + 0x38], edi
mov ecx, 6
call fcn.14019eed4
nop
call fcn.1401cfbe8
int3