Function at 0x14021d55c
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 0x14021d58d
mov rax, qword [0x140550cc0]
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, [0x1403019a0]
mov qword [rbx + 0x10], rcx
lea rcx, [0x14033b870]
mov qword [rbx + 0x18], rcx
test sil, 0x40
setne cl
mov byte [rbx + 0x38], cl
mov rcx, rdi
cmp dword [rcx], ecx
call fcn.140223da0
mov dword [rbx + 0x34], eax
mov rcx, rdi
mov edx, 1
call fcn.140229c20
mov byte [rbx + 0x39], al
movzx eax, byte [rbx + 0x38]
test eax, eax
je 0x14021d619
cmp byte [rbx + 0x39], 0xe
jne 0x14021d619
mov byte [rbx + 0x39], 0
movzx r8d, byte [rbx + 0x39]
lea ecx, [r8 - 0x12]
cmp ecx, 3
ja 0x14021d64e
add r8d, 0xffffffee
cmp r8d, 3
ja case.default.0x14021d64c
mov ecx, r8d
lea rdx, [0x14043da70]
mov edx, dword [rdx + rcx*4]
lea r8, [0x14021d5bd]
add rdx, r8
jmp rdx
test eax, eax
jne 0x14021d6b8
mov rcx, rdi
xor edx, edx
call fcn.140229c20
mov byte [rbx + 0x3a], al
movzx ecx, byte [rbx + 0x3a]
add ecx, 0xffffffec
cmp ecx, 1
ja 0x14021d6b8
mov rcx, rdi
call fcn.140223f60
mov qword [rsp + 0x90], rax
cmp byte [rsp + 0x90], 0
je 0x14021d6b8
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 0x14021d6b8
mov ecx, 8
mov eax, 9
cmp byte [rbx + 0x3a], 0x15
cmovne ecx, eax
mov dword [rbx + 0x30], ecx
jmp 0x14021db0d
mov rcx, rdi
call fcn.140229304
cmp dword [rax + 8], 1
jle 0x14021d6eb
lea rcx, [rbx + 0x10]
mov rdx, rax
call fcn.1400083e0
mov ecx, 0xb
mov eax, 0xa
cmp byte [rbx + 0x38], 0
cmove ecx, eax
mov dword [rbx + 0x30], ecx
jmp 0x14021db0d
test esi, 0x400
setne cl
movzx ecx, cl
test sil, 8
je 0x14021d707
test ecx, ecx
sete al
movzx eax, al
jmp 0x14021d709
xor eax, eax
movzx ebp, al
test ebp, ebp
jne 0x14021d71b
test ecx, ecx
sete cl
movzx ecx, cl
jmp 0x14021d71d
xor ecx, ecx
movzx esi, cl
test ebp, ebp
sete r14b
movzx r14d, r14b
cmp byte [rbx + 0x38], 0
je 0x14021d799
mov rcx, rdi
call fcn.14022982c
mov r15, rax
test r15, r15
je 0x14021db0d
lea r13, [rsp + 0x28]
xor r12d, r12d
cmp dword [r15 + 8], 0
jbe 0x14021db47
cmp word [r15 + 0xc], 1
je 0x14021da25
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x40], 5
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.140219bc0
mov r14d, eax
test r14d, r14d
jle 0x14021da25
cmp r14d, 5
jbe 0x14021da00
jmp 0x14021db41
mov rcx, rdi
call fcn.140229380
test rax, rax
je 0x14021d7c4
cmp dword [rax + 8], 1
jle 0x14021d7c4
lea rcx, [rbx + 0x10]
mov rdx, rax
call fcn.1400083e0
mov dword [rbx + 0x30], recv
jmp 0x14021db0d
test esi, esi
jne 0x14021d832
mov rcx, rdi
mov edx, 1
call fcn.140229180
test rax, rax
je 0x14021d832
mov r13d, dword [rax + 8]
cmp r13d, 1
jle 0x14021d832
lea rcx, [rbx + 0x18]
mov rdx, rax
call fcn.1400083e0
mov dword [rbx + 0x30], recv
test r14d, r14d
je 0x14021db0d
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.140150420
lea rcx, [rbx + 0x28]
mov rdx, rax
call fcn.1400083e0
jmp 0x14021db0d
test esi, esi
sete dl
movzx edx, dl
mov rcx, rdi
call fcn.140229420
mov r12, rax
test r12, r12
je 0x14021d890
lea rcx, [rsp + 0x78]
mov rdx, r12
call fcn.14021db60
cmp byte [rsp + 0x78], 0
je 0x14021d890
mov rdx, qword [rsp + 0x80]
mov esi, dword [rsp + 0x88]
test rdx, rdx
je 0x14021d890
mov dword [rbx + 0x30], reloc.WS2_32.dll_send
lea rcx, [rbx + 0x48]
call fcn.1400083e0
mov dword [rbx + 0x50], esi
mov word [rbx + 0x54], 0
jmp 0x14021db0d
lea rcx, [rsp + 0x98]
mov rdx, rdi
call fcn.140229880
movzx r15d, byte [rsp + 0x98]
test r12, r12
je 0x14021d94e
mov rcx, r12
call fcn.1402297cc
test r15d, r15d
je 0x14021d8eb
cmp dword [r12 + 0x10], 0
je 0x14021db3b
mov rax, qword [r12 + 8]
cmp dword [rax + 8], 0
jbe 0x14021db47
add rax, 0x10
cmp qword [rax + 8], 0
je 0x14021d94e
cmp byte [rax + 0x14], 0
jne 0x14021d94e
test ebp, ebp
jne 0x14021d988
cmp dword [r12 + 0x10], 1
jne 0x14021d988
mov rax, qword [r12 + 8]
cmp dword [rax + 8], 0
jbe 0x14021db47
add rax, 0x10
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14021d988
mov ecx, dword [rcx + 8]
cmp ecx, 1
jne 0x14021d988
cmp byte [rax + 0x14], 0
jne 0x14021d988
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 0x14021db0d
test r15d, r15d
je 0x14021db0d
mov dword [rbx + 0x30], reloc.WS2_32.dll_setsockopt
lea r8, [rbx + 0x58]
mov rdi, r8
lea rsi, [rsp + 0x98]
movsq qword [rdi], qword [rsi]
call fcn.1400085d0
call fcn.1400085d0
call fcn.1400085d0
movsq qword [rdi], qword [rsi]
mov byte [r8], r15b
jmp 0x14021daac
cmp dword [r12 + 0x10], 3
jle 0x14021d9a6
mov r8d, dword [r12 + 0x10]
add r8d, 0xfffffffd
mov rcx, r12
mov edx, 3
call fcn.140282e00
lea rcx, [rbx + 0x20]
mov rdx, r12
call fcn.1400083e0
mov edx, dword [r12 + 0x10]
cmp edx, 1
jne 0x14021d9d1
mov rcx, qword [r12 + 8]
cmp dword [rcx + 8], 0
jbe 0x14021db47
cmp dword [rcx + 0x20], 0
je 0x14021d9d8
mov ecx, setsockopt
jmp 0x14021d9dd
mov ecx, recv
mov dword [rbx + 0x30], ecx
movsxd rdx, edx
lea rcx, [0x1403d7100]
call fcn.1400082f0
lea rcx, [rbx + 8]
mov rdx, rax
call fcn.1400083e0
jmp 0x14021db0d
movsxd rdx, r14d
lea rcx, [0x1403ce1f8]
call fcn.1400082f0
mov r12, rax
mov r8d, r14d
add r8, r8
lea rcx, [r12 + 0x10]
mov rdx, r13
call fcn.14013abe0
test ebp, ebp
jne 0x14021da55
test r12, r12
je 0x14021da55
cmp dword [r12 + 8], 1
jne 0x14021da55
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 0x14021db0d
lea rcx, [0x1403b4e48]
call fcn.1400081d0
mov rsi, rax
lea rdx, [0x140338838]
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.140282974
lea rcx, [rbx + 0x20]
mov rdx, rsi
call fcn.1400083e0
mov dword [rbx + 0x30], reloc.WS2_32.dll_recv
lea rcx, [0x1403d7100]
mov edx, 1
call fcn.1400082f0
lea rcx, [rbx + 8]
mov rdx, rax
call fcn.1400083e0
jmp 0x14021db0d
mov ecx, 2
mov edx, 6
test eax, eax
cmovne ecx, edx
jmp 0x14021db0a
mov dword [rbx + 0x30], ecx
lea rcx, [0x140550cc0]
mov rcx, qword [rcx]
cmp qword [rsp + 0xc0], rcx
je 0x14021db26
call fcn.140007a10
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14013c61c
int3
call fcn.14013c570
int3
call fcn.14013c548
int3
pop rsi
add al, byte [rax]
add byte [rsi], al
add al, byte [rax]
add byte [rsi], al
add al, byte [rax]
add byte [rsi], al