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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x1a8
lea rbp, [rsp + 0x1e0]
xor eax, eax
mov qword [rbp - 0x1a8], rax
xorps xmm4, xmm4
movaps xmmword [rbp - 0x1a0], xmm4
movabs rax, 0xfffffffffffffeb0
movaps xmmword [rbp + rax - 0x40], xmm4
movaps xmmword [rbp + rax - 0x30], xmm4
movaps xmmword [rbp + rax - 0x20], xmm4
add rax, 0x30
jne 0x14012bdf8
mov qword [rbp - 0x40], rax
mov rdx, rcx
lea rcx, [rbp - 0xf8]
lea r9, [rbp - 0x138]
mov r8d, 1
call fcn.1404182b0
lea rcx, [rbp - 0xf8]
call fcn.14012b840
lea rcx, [rbp - 0xf8]
call fcn.14012b880
xor ebx, ebx
xor esi, esi
xor edi, edi
xor r14d, r14d
xor r15d, r15d
xor r13d, r13d
xor r12d, r12d
xor eax, eax
mov dword [rbp - 0xfc], eax
xor edx, edx
mov dword [rbp - 0x100], edx
jmp 0x14012c8fa
movzx edx, byte [rbp - 0xd0]
cmp edx, 2
je 0x14012c90e
cmp edx, 5
jne 0x14012c020
lea rdx, [0x140712988]
cmp qword [rdx - 8], 0
jne 0x14012bee9
mov rax, qword [0x140cc0138]
mov qword [rbp - 0x1b8], rax
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x14012c1f5
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
cmp byte [rbp - 0xcb], 0
je 0x14012c1ff
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c244
call fcn.140001f67
jmp 0x14012be93
lea rcx, [rbp - 0xf8]
call fcn.14041ca40
jmp 0x14012ca81
lea rcx, [0x1407683c8]
call fcn.14000ee50
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1406bc1a8]
call fcn.1402e9280
mov rcx, rbx
call fcn.1400101f0
lea rcx, [rbp - 0xf8]
call fcn.14041ca40
jmp 0x14012ca32
xor eax, eax
jmp 0x14012c9fe
xor ecx, ecx
mov eax, ecx
jmp 0x14012c865
xor ecx, ecx
mov eax, ecx
jmp 0x14012c79f
xor ecx, ecx
mov eax, ecx
jmp 0x14012c630
xor ecx, ecx
mov eax, ecx
jmp 0x14012c55f
xor ecx, ecx
mov eax, ecx
jmp 0x14012c496
xor ecx, ecx
mov eax, ecx
jmp 0x14012c3d0
xor ecx, ecx
mov eax, ecx
jmp 0x14012c30a
xor ecx, ecx
mov eax, ecx
jmp 0x14012c244
lea rcx, [0x140760c50]
call fcn.14000ee50
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1406abe38]
call fcn.1402df290
mov rcx, rbx
call fcn.1400101f0
movzx ecx, byte [rbp - 0xd0]
call fcn.140413860
int3
call fcn.140413880
int3
xor r9d, r9d
mov qword [rbp - 0x1a8], r9
xor r9d, r9d
mov dword [rbp - 0x1a0], r9d
lea r9, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
mov edx, 0x20
xor r8d, r8d
call fcn.140413930
int3
xor r9d, r9d
mov qword [rbp - 0x1a8], r9
xor r9d, r9d
mov dword [rbp - 0x1a0], r9d
lea r9, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
mov edx, 0x20
xor r8d, r8d
call fcn.140413930
int3
xorps xmm0, xmm0
movups xmmword [rbp - 0x190], xmm0
movups xmmword [rbp - 0x180], xmm0
movups xmmword [rbp - 0x178], xmm0
lea rcx, [rbp - 0x190]
mov edx, 0x3b
mov r8d, 1
call fcn.14034d560
movups xmm0, xmmword [rbp - 0x190]
movups xmmword [rbp - 0x168], xmm0
movups xmm0, xmmword [rbp - 0x180]
movups xmmword [rbp - 0x158], xmm0
mov rcx, qword [rbp - 0x170]
mov qword [rbp - 0x148], rcx
mov ecx, dword [rbp - 0x158]
cmp ecx, dword [rbp - 0x148]
ja 0x14012c116
mov rdx, qword [rbp - 0x150]
mov eax, ecx
lea rdx, [rdx + rax*2]
mov eax, dword [rbp - 0x148]
sub eax, ecx
xor ecx, ecx
cmp eax, 0x12
jb 0x14012c0cd
lea rcx, [0x1406d0af8]
add rcx, 0xc
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x14]
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx + 0x14], xmm2
mov ecx, 1
test ecx, ecx
je 0x14012c0e2
mov ecx, dword [rbp - 0x158]
add ecx, 0x12
mov dword [rbp - 0x158], ecx
jmp 0x14012c0f5
lea rcx, [rbp - 0x168]
lea rdx, [0x1406d0af8]
call fcn.14034da50
lea rcx, [rbp - 0x168]
movzx edx, byte [rbp - 0xd0]
call fcn.1406288a0
mov ebx, dword [rbp - 0x158]
cmp ebx, dword [rbp - 0x148]
jbe 0x14012c11c
call fcn.1402e9300
int3
mov rcx, qword [rbp - 0x150]
mov edx, ebx
lea rcx, [rcx + rdx*2]
mov edx, dword [rbp - 0x148]
sub edx, ebx
xor ebx, ebx
cmp edx, 0x29
jb 0x14012c153
lea rdx, [0x140694e30]
add rdx, 0xc
mov r8d, 0x52
call fcn.1402b05c0
mov ebx, 1
test ebx, ebx
je 0x14012c168
mov ecx, dword [rbp - 0x158]
add ecx, 0x29
mov dword [rbp - 0x158], ecx
jmp 0x14012c17b
lea rcx, [rbp - 0x168]
lea rdx, [0x140694e30]
call fcn.14034da50
lea rcx, [0x1407683c8]
call fcn.14000ee50
mov rbx, rax
lea rcx, [rbp - 0x168]
call fcn.14034d780
mov rdx, rax
mov rcx, rbx
call fcn.1402e9280
mov rcx, rbx
call fcn.1400101f0
lea rcx, [0x1407683c8]
call fcn.14000ee50
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1406bc210]
call fcn.1402e9280
mov rcx, rbx
call fcn.1400101f0
lea rcx, [0x1407683c8]
call fcn.14000ee50
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1406bc130]
call fcn.1402e9280
mov rcx, rbx
call fcn.1400101f0
xor ecx, ecx
xor r8d, r8d
jmp 0x14012beb6
cmp byte [rbp - 0xca], 0
je 0x14012c22b
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c244
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x14012bf7e
mov r8d, r10d
call fcn.1402e66a0
test eax, eax
je 0x14012c263
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406e7a48]
call fcn.14012ba30
mov rdi, rax
jmp 0x14012c8ee
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x38]
test rdx, rdx
je 0x14012c292
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c299
cmp edx, 7
jne 0x14012bfad
jmp 0x14012c299
xor ecx, ecx
xor r8d, r8d
jmp 0x14012c27b
cmp byte [rbp - 0xcb], 0
je 0x14012c2c5
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c30a
cmp byte [rbp - 0xca], 0
je 0x14012c2f1
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c30a
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x14012bf75
mov r8d, r10d
call fcn.1402e66a0
test eax, eax
je 0x14012c329
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406d5270]
call fcn.14012ba30
mov r14, rax
jmp 0x14012c8ee
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x14012c358
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c35f
cmp edx, 7
jne 0x14012bfad
jmp 0x14012c35f
xor ecx, ecx
xor r8d, r8d
jmp 0x14012c341
cmp byte [rbp - 0xcb], 0
je 0x14012c38b
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c3d0
cmp byte [rbp - 0xca], 0
je 0x14012c3b7
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c3d0
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x14012bf6c
mov r8d, r10d
call fcn.1402e66a0
test eax, eax
je 0x14012c3ef
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406d77f8]
call fcn.14012ba30
mov rbx, rax
jmp 0x14012c8ee
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x14012c41e
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c425
cmp edx, 7
jne 0x14012bfad
jmp 0x14012c425
xor ecx, ecx
xor r8d, r8d
jmp 0x14012c407
cmp byte [rbp - 0xcb], 0
je 0x14012c451
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c496
cmp byte [rbp - 0xca], 0
je 0x14012c47d
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c496
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x14012bf63
mov r8d, r10d
call fcn.1402e66a0
test eax, eax
je 0x14012c4b5
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406d7828]
call fcn.14012ba30
mov rsi, rax
jmp 0x14012c8ee
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x88]
test rdx, rdx
je 0x14012c4e7
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c4ee
cmp edx, 7
jne 0x14012bfad
jmp 0x14012c4ee
xor ecx, ecx
xor r8d, r8d
jmp 0x14012c4d0
cmp byte [rbp - 0xcb], 0
je 0x14012c51a
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c55f
cmp byte [rbp - 0xca], 0
je 0x14012c546
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c55f
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x14012bf5a
mov r8d, r10d
call fcn.1402e66a0
test eax, eax
je 0x14012c589
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406dd3e8]
call fcn.14012bbe0
mov qword [rbp - 0x140], rax
mov r12d, dword [rbp - 0x13c]
jmp 0x14012c8ee
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x48]
test rdx, rdx
je 0x14012c5b8
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c5bf
cmp edx, 7
jne 0x14012bfad
jmp 0x14012c5bf
xor ecx, ecx
xor r8d, r8d
jmp 0x14012c5a1
cmp byte [rbp - 0xcb], 0
je 0x14012c5eb
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c630
cmp byte [rbp - 0xca], 0
je 0x14012c617
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c630
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x14012bf51
mov r8d, r10d
call fcn.1402e66a0
test eax, eax
je 0x14012c6f8
lea rcx, [rbp - 0xf8]
call fcn.14012b840
lea rcx, [rbp - 0xf8]
call fcn.14012b960
lea rcx, [0x14078ff78]
call fcn.14000ee50
mov r15, rax
mov rcx, qword [0x140cc14b0]
mov rdx, qword [rcx + 8]
lea rcx, [r15 + 8]
call fcn.14000f060
lea rcx, [rbp - 0xf8]
call fcn.14012b840
test eax, eax
je 0x14012c8ee
movzx eax, byte [rbp - 0xd0]
cmp eax, 1
jne 0x14012c6da
lea rcx, [rbp - 0xf8]
call fcn.14012cb40
inc dword [r15 + 0x14]
mov rcx, qword [r15 + 8]
mov edx, dword [r15 + 0x10]
mov r8d, dword [rcx + 8]
cmp r8d, edx
jbe 0x14012c6cd
lea r8d, [rdx + 1]
mov dword [r15 + 0x10], r8d
mov edx, edx
lea rcx, [rcx + rdx*8 + 0x10]
mov rdx, rax
call fcn.14000f060
jmp 0x14012c6e3
mov rcx, r15
mov rdx, rax
call fcn.14056d440
jmp 0x14012c6e3
cmp eax, 4
je 0x14012c8ee
lea rcx, [rbp - 0xf8]
call fcn.14012b840
test eax, eax
jne 0x14012c687
jmp 0x14012c8ee
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x78]
test rdx, rdx
je 0x14012c727
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c72e
cmp edx, 7
jne 0x14012bfad
jmp 0x14012c72e
xor ecx, ecx
xor r8d, r8d
jmp 0x14012c710
cmp byte [rbp - 0xcb], 0
je 0x14012c75a
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c79f
cmp byte [rbp - 0xca], 0
je 0x14012c786
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c79f
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x14012bf48
mov r8d, r10d
call fcn.1402e66a0
test eax, eax
je 0x14012c7be
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406d9098]
call fcn.14012ba30
mov r13, rax
jmp 0x14012c8ee
lea rax, str.ProtocolVersion
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c7da
cmp edx, 7
jne 0x14012bfad
cmp byte [rbp - 0xcb], 0
je 0x14012c809
mov qword [rbp - 0x1a8], rax
mov dword [rbp - 0x1a0], shutdown
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
jmp 0x14012c865
cmp byte [rbp - 0xca], 0
je 0x14012c838
mov qword [rbp - 0x1a8], rax
mov dword [rbp - 0x1a0], shutdown
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c865
mov rdx, qword [rbp - 0x60]
mov ecx, dword [rbp - 0x58]
cmp ecx, 0xf
jne 0x14012bf3f
mov rcx, qword [rax]
mov r8, qword [rdx]
mov rax, qword [rax + 7]
mov rdx, qword [rdx + 7]
xor rcx, r8
xor rdx, rax
or rdx, rcx
sete al
movzx eax, al
test eax, eax
jne 0x14012bf87
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x98]
test rdx, rdx
je 0x14012c9ae
lea rcx, [rdx + 0x10]
mov eax, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14012c8a0
cmp edx, 7
jne 0x14012bfad
cmp byte [rbp - 0xcb], 0
je 0x14012c9b7
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], eax
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404185e0
test eax, eax
je 0x14012ca03
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406e7a98]
call fcn.14012b9c0
mov dword [rbp - 0xfc], eax
mov r8d, dword [rbp - 0x100]
test r8d, r8d
jne 0x14012c90e
lea rcx, [rbp - 0xf8]
call fcn.14012b840
test eax, eax
jne 0x14012be6c
mov rcx, rdi
or rcx, r13
jne 0x14012c936
test rbx, rbx
je 0x14012bf01
test r12d, r12d
jle 0x14012c92d
test rsi, rsi
je 0x14012c1a9
test r15, r15
je 0x14012c1cf
lea rcx, [0x1407372c0]
call fcn.14000ee50
mov qword [rbp - 0x1b0], rax
lea rcx, [rax + 0x18]
mov rdx, rbx
call fcn.14000f060
mov rbx, qword [rbp - 0x1b0]
lea rcx, [rbx + 0x20]
mov rdx, rsi
call fcn.14000f060
lea rcx, [rbx + 8]
mov rdx, rdi
call fcn.14000f060
lea rcx, [rbx + 0x10]
mov rdx, r14
call fcn.14000f060
lea rcx, [rbx + 0x28]
mov rdx, r15
call fcn.14000f060
lea rcx, [rbx + 0x30]
mov rdx, r13
call fcn.14000f060
mov dword [rbx + 0x38], r12d
mov esi, dword [rbp - 0xfc]
mov byte [rbx + 0x3c], sil
mov rax, rbx
jmp 0x14012caef
xor ecx, ecx
xor eax, eax
jmp 0x14012c88b
cmp byte [rbp - 0xca], 0
je 0x14012c9e5
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], eax
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1404189a0
jmp 0x14012c8cd
mov rdx, qword [rbp - 0x60]
mov r8d, dword [rbp - 0x58]
cmp eax, r8d
jne 0x14012bf38
mov r8d, r8d
call fcn.1402e66a0
jmp 0x14012c8cd
cmp byte [rbp - 0xd4], 0
je 0x14012bfba
cmp byte [rbp - 0xd0], 5
jne 0x14012ca3d
cmp byte [rbp - 0xcd], 0
jne 0x14012bf27
lea rcx, [rbp - 0xf8]
call fcn.140419640
movzx ecx, al
test ecx, ecx
je 0x14012cad0
movzx ecx, byte [rbp - 0xd0]
cmp ecx, 1
je 0x14012ca52
cmp ecx, 3
jne 0x14012c8ee
mov edx, dword [rbp - 0xa0]
cmp ecx, 3
je 0x14012cacc
cmp ecx, 1
je 0x14012cacc
mov dword [rbp - 0x194], edx
cmp byte [rbp - 0xcd], 0
jne 0x14012bef0
lea rcx, [rbp - 0xf8]
call fcn.140419640
movzx ecx, al
test ecx, ecx
je 0x14012cab2
mov eax, dword [rbp - 0xa0]
movzx ecx, byte [rbp - 0xd0]
cmp ecx, 3
je 0x14012caae
cmp ecx, 1
je 0x14012caae
mov edx, dword [rbp - 0x194]
cmp edx, eax
jl 0x14012ca68
jmp 0x14012c8ee
dec eax
jmp 0x14012ca9f
cmp byte [rbp - 0xd4], 0
je 0x14012ca88
movzx ecx, byte [rbp - 0xd0]
test ecx, ecx
je 0x14012bff0
jmp 0x14012ca88
dec edx
jmp 0x14012ca62
cmp byte [rbp - 0xd4], 0
je 0x14012ca3d
cmp byte [rbp - 0xd0], 0
je 0x14012bfc0
jmp 0x14012ca3d
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret