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

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp, 0xc8
xor eax, eax
mov qword [rsp + 0x38], rax
xorps xmm4, xmm4
movaps xmmword [rsp + 0x40], xmm4
movaps xmmword [rsp + 0x50], xmm4
movabs rax, 0xffffffffffffffa0
movaps xmmword [rsp + rax + 0xc0], xmm4
movaps xmmword [rsp + rax + 0xd0], xmm4
movaps xmmword [rsp + rax + 0xe0], xmm4
add rax, 0x30
jne 0x14031cded
mov rax, qword [0x140968900]
mov qword [rsp + 0xc0], rax
mov esi, r8d
mov rdi, rdx
mov rbx, rcx
mov dword [rbx + 0x30], reloc.WS2_32.dll_shutdown
lea rcx, [0x140480a50]
mov qword [rbx + 0x10], rcx
lea rcx, [0x1404f6b28]
mov qword [rbx + 0x18], rcx
test sil, 0x40
setne cl
mov byte [rbx + 0x38], cl
mov rcx, rdi
cmp dword [rcx], ecx
call fcn.140323560
mov dword [rbx + 0x34], eax
mov rcx, rdi
mov edx, 1
call fcn.140329a00
mov byte [rbx + 0x39], al
movzx eax, byte [rbx + 0x38]
test eax, eax
je 0x14031ce79
cmp byte [rbx + 0x39], 0xe
jne 0x14031ce79
mov byte [rbx + 0x39], 0
movzx r8d, byte [rbx + 0x39]
lea ecx, [r8 - 0x12]
cmp ecx, 3
ja 0x14031ceae
add r8d, 0xffffffee
cmp r8d, 3
ja case.default.0x14031ceac
mov ecx, r8d
lea rdx, [0x140765b30]
mov edx, dword [rdx + rcx*4]
lea r8, [0x14031ce1d]
add rdx, r8
jmp rdx
test eax, eax
jne 0x14031cf18
mov rcx, rdi
xor edx, edx
call fcn.140329a00
mov byte [rbx + 0x3a], al
movzx ecx, byte [rbx + 0x3a]
add ecx, 0xffffffec
cmp ecx, 1
ja 0x14031cf18
mov rcx, rdi
call fcn.140323720
mov qword [rsp + 0x90], rax
cmp byte [rsp + 0x90], 0
je 0x14031cf18
mov ecx, dword [rsp + 0x94]
mov byte [rbx + 0x3c], 1
mov dword [rbx + 0x40], ecx
mov ecx, dword [rbx + 0x34]
cmp ecx, dword [rsp + 0x94]
jne 0x14031cf18
mov ecx, 8
mov eax, 9
cmp byte [rbx + 0x3a], 0x15
cmovne ecx, eax
mov dword [rbx + 0x30], ecx
jmp 0x14031d368
mov rcx, rdi
call fcn.1403290c4
cmp dword [rax + 8], 1
jle 0x14031cf4b
lea rcx, [rbx + 0x10]
mov rdx, rax
call fcn.14000ade0
mov ecx, 0xb
mov eax, 0xa
cmp byte [rbx + 0x38], 0
cmove ecx, eax
mov dword [rbx + 0x30], ecx
jmp 0x14031d368
test esi, 0x400
setne cl
movzx ecx, cl
test sil, 8
je 0x14031cf67
test ecx, ecx
sete al
movzx eax, al
jmp 0x14031cf69
xor eax, eax
movzx ebp, al
test ebp, ebp
jne 0x14031cf7b
test ecx, ecx
sete cl
movzx ecx, cl
jmp 0x14031cf7d
xor ecx, ecx
movzx esi, cl
test ebp, ebp
sete r14b
movzx r14d, r14b
cmp byte [rbx + 0x38], 0
je 0x14031cff9
mov rcx, rdi
call fcn.1403295ec
mov r15, rax
test r15, r15
je 0x14031d368
lea r13, [rsp + 0x28]
xor r12d, r12d
cmp dword [r15 + 8], 0
jbe 0x14031d3a2
cmp word [r15 + 0xc], 1
je 0x14031d280
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x40], 5
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.140319440
mov r14d, eax
test r14d, r14d
jle 0x14031d280
cmp r14d, 5
jbe 0x14031d25b
jmp 0x14031d39c
mov rcx, rdi
call fcn.140329140
test rax, rax
je 0x14031d024
cmp dword [rax + 8], 1
jle 0x14031d024
lea rcx, [rbx + 0x10]
mov rdx, rax
call fcn.14000ade0
mov dword [rbx + 0x30], recv
jmp 0x14031d368
test esi, esi
jne 0x14031d092
mov rcx, rdi
mov edx, 1
call fcn.140328f40
test rax, rax
je 0x14031d092
mov r13d, dword [rax + 8]
cmp r13d, 1
jle 0x14031d092
lea rcx, [rbx + 0x18]
mov rdx, rax
call fcn.14000ade0
mov dword [rbx + 0x30], recv
test r14d, r14d
je 0x14031d368
mov rcx, qword [rbx + 0x18]
add rcx, 0x10
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x50], r13d
lea rcx, [rsp + 0x48]
mov edx, 5
call fcn.1401f9108
lea rcx, [rbx + 0x28]
mov rdx, rax
call fcn.14000ade0
jmp 0x14031d368
test esi, esi
sete dl
movzx edx, dl
mov rcx, rdi
call fcn.1403291e0
mov r12, rax
test r12, r12
je 0x14031d0f0
lea rcx, [rsp + 0x78]
mov rdx, r12
call fcn.14031d3c0
cmp byte [rsp + 0x78], 0
je 0x14031d0f0
mov rdx, qword [rsp + 0x80]
mov esi, dword [rsp + 0x88]
test rdx, rdx
je 0x14031d0f0
mov dword [rbx + 0x30], reloc.WS2_32.dll_send
lea rcx, [rbx + 0x48]
call fcn.14000ade0
mov dword [rbx + 0x50], esi
mov word [rbx + 0x54], 0
jmp 0x14031d368
lea rcx, [rsp + 0x98]
mov rdx, rdi
call fcn.140329640
test r12, r12
je 0x14031d1aa
mov rcx, r12
call fcn.14032958c
cmp byte [rsp + 0x98], 0
je 0x14031d147
cmp dword [r12 + 0x10], 0
je 0x14031d396
mov rax, qword [r12 + 8]
cmp dword [rax + 8], 0
jbe 0x14031d3a2
add rax, 0x10
cmp qword [rax + 8], 0
je 0x14031d1aa
cmp byte [rax + 0x14], 0
jne 0x14031d1aa
test ebp, ebp
jne 0x14031d1e3
cmp dword [r12 + 0x10], 1
jne 0x14031d1e3
mov rax, qword [r12 + 8]
cmp dword [rax + 8], 0
jbe 0x14031d3a2
add rax, 0x10
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14031d1e3
mov ecx, dword [rcx + 8]
cmp ecx, 1
jne 0x14031d1e3
cmp byte [rax + 0x14], 0
jne 0x14031d1e3
mov rcx, qword [rax + 8]
movzx ecx, word [rcx + 0x10]
mov eax, dword [rax + 0x10]
xor r8d, r8d
mov qword [rbx + 0x48], r8
mov dword [rbx + 0x50], eax
mov word [rbx + 0x54], cx
mov dword [rbx + 0x30], reloc.WS2_32.dll_select
jmp 0x14031d368
cmp byte [rsp + 0x98], 0
je 0x14031d368
mov dword [rbx + 0x30], reloc.WS2_32.dll_setsockopt
lea rdi, [rbx + 0x58]
lea rsi, [rsp + 0x98]
movsq qword [rdi], qword [rsi]
call fcn.14000afd0
call fcn.14000afd0
call fcn.14000afd0
movsq qword [rdi], qword [rsi]
jmp 0x14031d307
cmp dword [r12 + 0x10], 3
jle 0x14031d201
mov r8d, dword [r12 + 0x10]
add r8d, 0xfffffffd
mov rcx, r12
mov edx, 3
call fcn.1403b3640
lea rcx, [rbx + 0x20]
mov rdx, r12
call fcn.14000ade0
mov edx, dword [r12 + 0x10]
cmp edx, 1
jne 0x14031d22c
mov rcx, qword [r12 + 8]
cmp dword [rcx + 8], 0
jbe 0x14031d3a2
cmp dword [rcx + 0x20], 0
je 0x14031d233
mov ecx, setsockopt
jmp 0x14031d238
mov ecx, recv
mov dword [rbx + 0x30], ecx
movsxd rdx, edx
lea rcx, [0x140662450]
call fcn.14000acf0
lea rcx, [rbx + 8]
mov rdx, rax
call fcn.14000ade0
jmp 0x14031d368
movsxd rdx, r14d
lea rcx, [0x14064ebe0]
call fcn.14000acf0
mov r12, rax
mov r8d, r14d
add r8, r8
lea rcx, [r12 + 0x10]
mov rdx, r13
call fcn.1401dfd00
test ebp, ebp
jne 0x14031d2b0
test r12, r12
je 0x14031d2b0
cmp dword [r12 + 8], 1
jne 0x14031d2b0
movzx ecx, word [r12 + 0x10]
xor eax, eax
mov qword [rbx + 0x48], rax
mov dword [rbx + 0x50], eax
mov word [rbx + 0x54], cx
mov dword [rbx + 0x30], setsockopt
jmp 0x14031d368
lea rcx, [0x1405ffc30]
call fcn.14000abd0
mov rsi, rax
lea rdx, [0x1404f1e98]
mov qword [rsi + 8], rdx
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], r12
xor edx, edx
mov dword [rsp + 0x68], edx
mov byte [rsp + 0x6c], 0
mov qword [rsp + 0x70], rdx
inc dword [rsi + 0x14]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.1403b3134
lea rcx, [rbx + 0x20]
mov rdx, rsi
call fcn.14000ade0
mov dword [rbx + 0x30], reloc.WS2_32.dll_recv
lea rcx, [0x140662450]
mov edx, 1
call fcn.14000acf0
lea rcx, [rbx + 8]
mov rdx, rax
call fcn.14000ade0
jmp 0x14031d368
mov ecx, 2
mov edx, 6
test eax, eax
cmovne ecx, edx
jmp 0x14031d365
mov dword [rbx + 0x30], ecx
lea rcx, [0x140968900]
mov rcx, qword [rcx]
cmp qword [rsp + 0xc0], rcx
je 0x14031d381
call fcn.14000a700
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1401e1b68
int3
call fcn.1401e1abc
int3
call fcn.1401e1a94
int3
add al, byte [rax]
invalid