Function at 0x140101060
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 0x140101098
mov qword [rbp - 0x40], rax
mov rdx, rcx
lea rcx, [rbp - 0xf8]
lea r9, [rbp - 0x138]
mov r8d, 1
call fcn.14038f674
lea rcx, [rbp - 0xf8]
call fcn.140100b14
lea rcx, [rbp - 0xf8]
call fcn.140100b54
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 0x1401011ad
movzx edx, byte [rbp - 0xd0]
cmp edx, 2
je 0x1401011c1
cmp edx, 5
jne 0x1401012c0
lea rdx, [0x140645738]
cmp qword [rdx - 8], 0
jne 0x1401014a4
mov rax, qword [0x140bbf028]
mov qword [rbp - 0x1b8], rax
mov rdx, qword [rax + 0x28]
test rdx, rdx
jne 0x1401014ae
xor ecx, ecx
xor r8d, r8d
cmp byte [rbp - 0xcb], 0
je 0x1401014bb
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
test eax, eax
je 0x14010150a
lea rcx, [rbp - 0xf8]
lea rdx, [0x14061ff90]
call fcn.140100ce8
mov rdi, rax
mov edx, dword [rbp - 0x100]
test edx, edx
jne 0x1401011c1
lea rcx, [rbp - 0xf8]
call fcn.140100b14
test eax, eax
jne 0x14010110c
mov rcx, rdi
or rcx, r13
jne 0x1401011e9
test rbx, rbx
je 0x140101261
test r12d, r12d
jle 0x1401011e0
test rsi, rsi
je 0x140101458
test r15, r15
je 0x14010147e
lea rcx, [0x140668998]
call fcn.14000ec80
mov qword [rbp - 0x1b0], rax
lea rcx, [rax + 0x18]
mov rdx, rbx
call fcn.14000ee90
mov rbx, qword [rbp - 0x1b0]
lea rcx, [rbx + 0x20]
mov rdx, rsi
call fcn.14000ee90
lea rcx, [rbx + 8]
mov rdx, rdi
call fcn.14000ee90
lea rcx, [rbx + 0x10]
mov rdx, r14
call fcn.14000ee90
lea rcx, [rbx + 0x28]
mov rdx, r15
call fcn.14000ee90
lea rcx, [rbx + 0x30]
mov rdx, r13
call fcn.14000ee90
mov dword [rbx + 0x38], r12d
mov esi, dword [rbp - 0xfc]
mov byte [rbx + 0x3c], sil
mov rax, rbx
jmp 0x140101c58
lea rcx, [0x140699b18]
call fcn.14000ec80
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1405f4230]
call fcn.140285ef8
mov rcx, rbx
call fcn.140010020
lea rcx, [0x1406923a0]
call fcn.14000ec80
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1405e3e68]
call fcn.14027cfcc
mov rcx, rbx
call fcn.140010020
movzx ecx, byte [rbp - 0xd0]
call fcn.14038b470
int3
call fcn.14038b488
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.1402dda8c
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 0x1401013b6
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 0x14010136d
lea rcx, [0x140608c38]
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 0x140101382
mov ecx, dword [rbp - 0x158]
add ecx, 0x12
mov dword [rbp - 0x158], ecx
jmp 0x140101395
lea rcx, [rbp - 0x168]
lea rdx, [0x140608c38]
call fcn.1402ddecc
lea rcx, [rbp - 0x168]
movzx edx, byte [rbp - 0xd0]
call fcn.140566660
mov ebx, dword [rbp - 0x158]
cmp ebx, dword [rbp - 0x148]
jbe 0x1401013bc
call fcn.140285f68
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 0x1401013f3
lea rdx, [0x1405cc7b8]
add rdx, 0xc
mov r8d, 0x52
call fcn.140253a40
mov ebx, 1
test ebx, ebx
je 0x140101408
mov ecx, dword [rbp - 0x158]
add ecx, 0x29
mov dword [rbp - 0x158], ecx
jmp 0x14010141b
lea rcx, [rbp - 0x168]
lea rdx, [0x1405cc7b8]
call fcn.1402ddecc
lea rcx, [0x140699b18]
call fcn.14000ec80
mov rbx, rax
lea rcx, [rbp - 0x168]
call fcn.1402ddc28
mov dword [rbx + 0x48], 0x80131500
lea rcx, [rbx + 8]
mov rdx, rax
call fcn.14000ee90
mov dword [rbx + 0x48], 0x80131501
mov rcx, rbx
call fcn.140010020
lea rcx, [0x140699b18]
call fcn.14000ec80
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1405f4298]
call fcn.140285ef8
mov rcx, rbx
call fcn.140010020
lea rcx, [0x140699b18]
call fcn.14000ec80
mov rbx, rax
mov rcx, rbx
lea rdx, [0x1405f41b8]
call fcn.140285ef8
mov rcx, rbx
call fcn.140010020
call fcn.140001f47
jmp 0x140101137
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
jmp 0x140101157
cmp byte [rbp - 0xca], 0
je 0x1401014ea
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x140101185
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x140101501
mov r8d, r10d
call fcn.140283ba0
jmp 0x140101505
xor ecx, ecx
mov eax, ecx
jmp 0x140101185
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x38]
test rdx, rdx
jne 0x140101521
xor ecx, ecx
xor r8d, r8d
jmp 0x140101529
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x14010153e
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x14010156a
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
jmp 0x1401015b1
cmp byte [rbp - 0xca], 0
je 0x140101596
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x1401015b1
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x1401015ad
mov r8d, r10d
call fcn.140283ba0
jmp 0x1401015b1
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x1401015d0
lea rcx, [rbp - 0xf8]
lea rdx, [0x14060d3b0]
call fcn.140100ce8
mov r14, rax
jmp 0x1401011a3
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 8]
test rdx, rdx
jne 0x1401015e7
xor ecx, ecx
xor r8d, r8d
jmp 0x1401015ef
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x140101604
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x140101630
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
jmp 0x140101677
cmp byte [rbp - 0xca], 0
je 0x14010165c
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x140101677
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x140101673
mov r8d, r10d
call fcn.140283ba0
jmp 0x140101677
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x140101696
lea rcx, [rbp - 0xf8]
lea rdx, [0x14060f9a0]
call fcn.140100ce8
mov rbx, rax
jmp 0x1401011a3
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x18]
test rdx, rdx
jne 0x1401016ad
xor ecx, ecx
xor r8d, r8d
jmp 0x1401016b5
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x1401016ca
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x1401016f6
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
jmp 0x14010173d
cmp byte [rbp - 0xca], 0
je 0x140101722
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x14010173d
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x140101739
mov r8d, r10d
call fcn.140283ba0
jmp 0x14010173d
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x14010175c
lea rcx, [rbp - 0xf8]
lea rdx, [0x14060f9d0]
call fcn.140100ce8
mov rsi, rax
jmp 0x1401011a3
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x88]
test rdx, rdx
jne 0x140101776
xor ecx, ecx
xor r8d, r8d
jmp 0x14010177e
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x140101793
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x1401017bf
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
jmp 0x140101806
cmp byte [rbp - 0xca], 0
je 0x1401017eb
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x140101806
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x140101802
mov r8d, r10d
call fcn.140283ba0
jmp 0x140101806
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x140101830
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406157a0]
call fcn.140100e8c
mov qword [rbp - 0x140], rax
mov r12d, dword [rbp - 0x13c]
jmp 0x1401011a3
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x48]
test rdx, rdx
jne 0x140101847
xor ecx, ecx
xor r8d, r8d
jmp 0x14010184f
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x140101864
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x140101890
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
jmp 0x1401018d7
cmp byte [rbp - 0xca], 0
je 0x1401018bc
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x1401018d7
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x1401018d3
mov r8d, r10d
call fcn.140283ba0
jmp 0x1401018d7
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x14010199d
lea rcx, [rbp - 0xf8]
call fcn.140100b14
lea rcx, [rbp - 0xf8]
call fcn.140100c24
lea rcx, [0x1406c1408]
call fcn.14000ec80
mov r15, rax
mov rcx, qword [0x140bc0380]
mov rdx, qword [rcx + 8]
lea rcx, [r15 + 8]
call fcn.14000ee90
lea rcx, [rbp - 0xf8]
call fcn.140100b14
test eax, eax
je 0x1401011a3
movzx eax, byte [rbp - 0xd0]
cmp eax, 1
jne 0x14010197f
lea rcx, [rbp - 0xf8]
call fcn.140101cc0
inc dword [r15 + 0x14]
mov rcx, qword [r15 + 8]
mov edx, dword [r15 + 0x10]
mov r8d, dword [rcx + 8]
cmp r8d, edx
jbe 0x140101972
lea r8d, [rdx + 1]
mov dword [r15 + 0x10], r8d
lea rcx, [rcx + rdx*8 + 0x10]
mov rdx, rax
call fcn.14000ee90
jmp 0x140101988
mov rcx, r15
mov rdx, rax
call fcn.1404be61c
jmp 0x140101988
cmp eax, 4
je 0x1401011a3
lea rcx, [rbp - 0xf8]
call fcn.140100b14
test eax, eax
jne 0x14010192e
jmp 0x1401011a3
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x78]
test rdx, rdx
jne 0x1401019b4
xor ecx, ecx
xor r8d, r8d
jmp 0x1401019bc
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x1401019d1
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x1401019fd
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
jmp 0x140101a44
cmp byte [rbp - 0xca], 0
je 0x140101a29
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x140101a44
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x140101a40
mov r8d, r10d
call fcn.140283ba0
jmp 0x140101a44
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x140101a63
lea rcx, [rbp - 0xf8]
lea rdx, [0x1406112e8]
call fcn.140100ce8
mov r13, rax
jmp 0x1401011a3
lea rax, str.ProtocolVersion
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x140101a7f
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x140101aae
mov qword [rbp - 0x1a8], rax
mov dword [rbp - 0x1a0], shutdown
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
jmp 0x140101b0a
cmp byte [rbp - 0xca], 0
je 0x140101add
mov qword [rbp - 0x1a8], rax
mov dword [rbp - 0x1a0], shutdown
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x140101b0a
mov rdx, qword [rbp - 0x60]
mov ecx, dword [rbp - 0x58]
cmp ecx, 0xf
jne 0x140101b08
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
jmp 0x140101b0a
xor eax, eax
test eax, eax
jne 0x140101287
mov rdx, qword [rbp - 0x1b8]
mov rdx, qword [rdx + 0x98]
test rdx, rdx
jne 0x140101b2b
xor ecx, ecx
xor eax, eax
jmp 0x140101b32
lea rcx, [rdx + 0x10]
mov eax, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x140101b47
cmp edx, 7
jne 0x1401012ad
cmp byte [rbp - 0xcb], 0
je 0x140101b92
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], eax
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038f980
test eax, eax
je 0x140101bd5
lea rcx, [rbp - 0xf8]
lea rdx, [0x14061ffe0]
call fcn.140100c7c
mov dword [rbp - 0xfc], eax
jmp 0x1401011a3
cmp byte [rbp - 0xca], 0
je 0x140101bbd
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], eax
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.14038fd50
jmp 0x140101b70
mov rdx, qword [rbp - 0x60]
mov r8d, dword [rbp - 0x58]
cmp eax, r8d
jne 0x140101bd1
call fcn.140283ba0
jmp 0x140101bd3
xor eax, eax
jmp 0x140101b70
cmp byte [rbp - 0xd4], 0
je 0x1401012ba
cmp byte [rbp - 0xd0], 5
jne 0x140101bf7
lea rcx, [rbp - 0xf8]
call fcn.14038f7a0
movzx ecx, byte [rbp - 0xd0]
cmp ecx, 1
je 0x140101c0c
cmp ecx, 3
jne 0x1401011a3
mov edx, dword [rbp - 0xa0]
cmp ecx, 3
je 0x140101c1c
cmp ecx, 1
jne 0x140101c1e
dec edx
mov dword [rbp - 0x194], edx
lea rcx, [rbp - 0xf8]
call fcn.14038f7a0
mov ecx, dword [rbp - 0xa0]
movzx eax, byte [rbp - 0xd0]
cmp eax, 3
je 0x140101c47
cmp eax, 1
jne 0x140101c49
dec ecx
mov edx, dword [rbp - 0x194]
cmp edx, ecx
jl 0x140101c24
jmp 0x1401011a3
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret