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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov rsi, rcx
test edx, edx
je 0x1402c5ceb
mov byte [rsi + 4], 0x12
mov dword [rsi], 2
mov rax, rsi
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, r9
bt rdx, 0x28
jb 0x1402c5f3d
movabs rax, 0xaaaaaaaaaaaaaaab
imul rax, rdi
ror rax, 1
movabs rcx, 0x2aaaaaaaaaaaaaab
cmp rax, rcx
jb 0x1402c5f4f
mov rax, qword [0x140569f90]
mov rax, qword [rax]
cmp rax, 1
ja 0x1402c621c
movzx edx, byte [0x140568ee8]
test dl, dl
je 0x1402c621c
movzx eax, dl
cmp eax, 1
je 0x1402c5d53
cmp eax, 2
jne 0x1402c6206
mov dl, 2
mov rcx, qword [0x140568ed8]
call fcn.140310c20
test al, al
je 0x1402c621c
mov rcx, qword [0x140568ed8]
call fcn.140312670
lea rbx, [rsp + 0x130]
mov rcx, rbx
mov rdx, rax
call fcn.140312860
mov rcx, qword [0x140568ed8]
call fcn.140312670
mov r15, rax
lea r14, [rsp + 0x58]
mov rcx, r14
mov rdx, rbx
call fcn.140312890
cmp qword [rsp + 0x60], 0
je 0x1402c646d
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x120], rax
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
mov qword [rsp + 0xd0], rdi
lea rax, [rsp + 0xd0]
mov qword [rsp + 0xa0], rax
lea rax, [0x14005cb20]
mov qword [rsp + 0xa8], rax
lea rax, str.invalid_settings_payload_length__len
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], 0
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, [rsp + 0x100]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], r14
lea rax, fcn.14000b670
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 1
mov qword [rsp + 0xf0], r15
mov rcx, qword [0x140568ed8]
lea rdi, [rsp + 0xe0]
mov rdx, rdi
call fcn.140312980
mov rax, qword [0x140569f80]
movzx eax, byte [rax]
test al, al
jne 0x1402c63ec
mov rax, qword [0x14056a010]
mov rax, qword [rax]
cmp rax, 4
jb 0x1402c63ec
mov r14, qword [0x140568ed8]
mov rcx, r14
call fcn.14029a8d0
mov qword [rsp + 0x88], 4
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdx
call fcn.1403440a0
mov rbx, rax
mov r15, rdx
lea rdx, [rsp + 0x88]
mov rcx, rax
call qword [r15 + 0x20]
test al, al
je 0x1402c63ec
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x130], xmm0
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x130]
jmp 0x1402c63de
test rdi, rdi
je 0x1402c614c
mov byte [rsi + 4], 0x10
jmp 0x1402c5cce
test rdi, rdi
je 0x1402c6185
xor eax, eax
lea r15, [0x1402c6488]
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x30], 0
xor edx, edx
mov dword [rsp + 0x38], 0
xor ecx, ecx
mov dword [rsp + 0x34], 0
jmp 0x1402c5fbc
shl r13d, 0x18
shl r14d, 0x10
or r14d, r13d
shl r9d, 8
or r9d, r14d
or r9d, r10d
mov dword [rsp + 0x34], 1
mov ebp, r9d
mov dword [rsp + 0x48], r9d
nop dword [rax]
add r8, r12
sub rdi, r12
je 0x1402c61ab
cmp rdi, 6
mov r12d, 6
cmovb r12, rdi
cmp r12, 1
je 0x1402c63f5
cmp r12, 2
jbe 0x1402c640d
cmp r12, 3
je 0x1402c6425
cmp r12, 4
jbe 0x1402c643d
cmp r12, 5
je 0x1402c6455
movzx ebp, byte [r8]
movzx ebx, byte [r8 + 1]
shl ebp, 8
add ebp, ebx
dec ebp
cmp ebp, 7
ja case.0x1402c602c.7
movzx r13d, byte [r8 + 2]
movzx r14d, byte [r8 + 3]
movzx r9d, byte [r8 + 4]
movzx r10d, byte [r8 + 5]
movsxd rbx, dword [r15 + rbp*4]
add rbx, r15
jmp rbx
shl r13d, 0x18
shl r14d, 0x10
or r14d, r13d
shl r9d, 8
or r9d, r14d
or r9d, r10d
mov ecx, 1
mov r11d, r9d
cmp r9d, 2
jb case.0x1402c602c.7
jmp 0x1402c6143
shl r13d, 0x18
shl r14d, 0x10
or r14d, r13d
shl r9d, 8
or r9d, r14d
or r9d, r10d
mov dword [rsp + 0x38], 1
mov ebp, r9d
mov dword [rsp + 0x4c], r9d
jmp case.0x1402c602c.7
shl r13d, 0x18
shl r14d, 0x10
or r14d, r13d
shl r9d, 8
or r9d, r14d
or r9d, r10d
mov edx, 1
mov ebp, r9d
mov dword [rsp + 0x50], r9d
jns case.0x1402c602c.7
jmp 0x1402c6143
shl r13d, 0x18
shl r14d, 0x10
or r14d, r13d
shl r9d, 8
or r9d, r14d
lea ebx, [r10 + r9]
add ebx, 0xff000000
cmp ebx, 0xff004000
jb 0x1402c6143
or r9d, r10d
mov dword [rsp + 0x30], 1
mov ebp, r9d
mov dword [rsp + 0x40], r9d
jmp case.0x1402c602c.7
shl r13d, 0x18
shl r14d, 0x10
or r14d, r13d
shl r9d, 8
or r9d, r14d
or r9d, r10d
mov dword [rsp + 0x3c], 1
mov ebp, r9d
mov dword [rsp + 0x54], r9d
jmp case.0x1402c602c.7
shl r13d, 0x18
shl r14d, 0x10
or r14d, r13d
shl r9d, 8
or r9d, r14d
or r9d, r10d
mov eax, 1
mov ebp, r9d
mov dword [rsp + 0x44], r9d
cmp r9d, 2
jb case.0x1402c602c.7
mov byte [rsi + 4], 0xe
jmp 0x1402c5cce
mov dword [rsi], 0
mov dword [rsi + 8], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 0x18], 0
mov dword [rsi + 0x20], 0
mov dword [rsi + 0x28], 0
mov dword [rsi + 0x30], 0
mov byte [rsi + 0x38], 1
jmp 0x1402c5cd4
mov dword [rsp + 0x34], 0
xor ecx, ecx
mov dword [rsp + 0x38], 0
xor edx, edx
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x3c], 0
xor eax, eax
mov ebp, dword [rsp + 0x34]
mov dword [rsi], ebp
mov ebp, dword [rsp + 0x48]
mov dword [rsi + 4], ebp
mov dword [rsi + 8], ecx
mov dword [rsi + 0xc], r11d
mov ecx, dword [rsp + 0x38]
mov dword [rsi + 0x10], ecx
mov ecx, dword [rsp + 0x4c]
mov dword [rsi + 0x14], ecx
mov dword [rsi + 0x18], edx
mov ecx, dword [rsp + 0x50]
mov dword [rsi + 0x1c], ecx
mov ecx, dword [rsp + 0x30]
mov dword [rsi + 0x20], ecx
mov ecx, dword [rsp + 0x40]
mov dword [rsi + 0x24], ecx
mov ecx, dword [rsp + 0x3c]
mov dword [rsi + 0x28], ecx
mov ecx, dword [rsp + 0x54]
mov dword [rsi + 0x2c], ecx
mov dword [rsi + 0x30], eax
mov eax, dword [rsp + 0x44]
mov dword [rsi + 0x34], eax
mov byte [rsi + 0x38], 0
jmp 0x1402c5cd4
lea rcx, [0x140568ed8]
call fcn.1403b3a70
mov edx, eax
test al, al
jne 0x1402c5d53
mov rax, qword [0x140569f80]
movzx eax, byte [rax]
test al, al
jne 0x1402c63ec
mov rax, qword [0x14056a010]
mov rax, qword [rax]
cmp rax, 4
jb 0x1402c63ec
mov r14, qword [0x140568ed8]
mov rcx, r14
call fcn.14029a8d0
mov qword [rsp + 0xa0], 4
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rdx
call fcn.1403440a0
mov rbx, rax
mov r15, rdx
lea rdx, [rsp + 0xa0]
mov rcx, rax
call qword [r15 + 0x20]
test al, al
je 0x1402c63ec
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xe0], xmm0
mov rcx, qword [0x140568ed8]
call fcn.140312670
lea rbp, [rsp + 0x130]
mov rcx, rbp
mov rdx, rax
call fcn.140312860
mov rcx, qword [0x140568ed8]
call fcn.140312670
mov r12, rax
lea r13, [rsp + 0x58]
mov rcx, r13
mov rdx, rbp
call fcn.140312890
cmp qword [rsp + 0x60], 0
je 0x1402c646d
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x120], rax
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
mov qword [rsp + 0xf8], rdi
lea rax, [rsp + 0xf8]
mov qword [rsp + 0xd0], rax
lea rax, [0x14005cb20]
mov qword [rsp + 0xd8], rax
lea rax, str.invalid_settings_payload_length__len
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], 0
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, [rsp + 0x100]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], r13
lea rax, fcn.14000b670
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 1
mov qword [rsp + 0xc8], r12
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xe0]
mov rcx, r14
mov rdx, rbx
mov r8, r15
call fcn.140310c40
mov byte [rsi + 4], 0x11
jmp 0x1402c5cce
lea r8, [0x14045e580]
mov ecx, 1
mov edx, 1
call fcn.1403b62b0
ud2
lea r8, [0x14045e598]
mov ecx, 2
mov edx, 2
call fcn.1403b62b0
ud2
lea r8, [0x14045e598]
mov ecx, 3
mov edx, 3
call fcn.1403b62b0
ud2
lea r8, [0x14045e598]
mov ecx, 4
mov edx, 4
call fcn.1403b62b0
ud2
lea r8, [0x14045e598]
mov ecx, 5
mov edx, 5
call fcn.1403b62b0
ud2
lea rcx, str.FieldSet_corrupted__this_is_a_bug_recv_PING_SHUTDOWN_ack
lea r8, [0x14045e418]
mov edx, 0x22
call fcn.1403b6250
ud2