Function at 0x18009bbc0
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 0x18009bbf8
mov qword [rbp - 0x40], rax
mov rdx, rcx
lea rcx, [rbp - 0xf8]
lea r9, [rbp - 0x138]
mov r8d, 1
call fcn.1802f5a90
lea rcx, [rbp - 0xf8]
call fcn.18009b660
lea rcx, [rbp - 0xf8]
call fcn.18009b6a0
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 0x18009bd0d
movzx edx, byte [rbp - 0xd0]
cmp edx, 2
je 0x18009bd21
cmp edx, 5
jne 0x18009be20
lea rdx, [0x1805af470]
cmp qword [rdx - 8], 0
jne 0x18009c004
mov rax, qword [0x180a3cbe0]
mov qword [rbp - 0x1b8], rax
mov rdx, qword [rax + 0x28]
test rdx, rdx
jne 0x18009c00e
xor ecx, ecx
xor r8d, r8d
cmp byte [rbp - 0xcb], 0
je 0x18009c01b
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
test eax, eax
je 0x18009c06a
lea rcx, [rbp - 0xf8]
lea rdx, [0x180595da8]
call fcn.18009b850
mov rdi, rax
mov edx, dword [rbp - 0x100]
test edx, edx
jne 0x18009bd21
lea rcx, [rbp - 0xf8]
call fcn.18009b660
test eax, eax
jne 0x18009bc6c
mov rcx, rdi
or rcx, r13
jne 0x18009bd49
test rbx, rbx
je 0x18009bdc1
test r12d, r12d
jle 0x18009bd40
test rsi, rsi
je 0x18009bfb8
test r15, r15
je 0x18009bfde
lea rcx, [0x1805c46f8]
call fcn.18000b300
mov qword [rbp - 0x1b0], rax
lea rcx, [rax + 0x18]
mov rdx, rbx
call fcn.18000b510
mov rbx, qword [rbp - 0x1b0]
lea rcx, [rbx + 0x20]
mov rdx, rsi
call fcn.18000b510
lea rcx, [rbx + 8]
mov rdx, rdi
call fcn.18000b510
lea rcx, [rbx + 0x10]
mov rdx, r14
call fcn.18000b510
lea rcx, [rbx + 0x28]
mov rdx, r15
call fcn.18000b510
lea rcx, [rbx + 0x30]
mov rdx, r13
call fcn.18000b510
mov dword [rbx + 0x38], r12d
mov esi, dword [rbp - 0xfc]
mov byte [rbx + 0x3c], sil
mov rax, rbx
jmp 0x18009c7b8
lea rcx, [0x1805e56d0]
call fcn.18000b300
mov rbx, rax
mov rcx, rbx
lea rdx, [0x18055cbc8]
call fcn.1801d2700
mov rcx, rbx
call fcn.18000b8f0
lea rcx, [0x1805de050]
call fcn.18000b300
mov rbx, rax
mov rcx, rbx
lea rdx, [0x18054be70]
call fcn.1801c8660
mov rcx, rbx
call fcn.18000b8f0
movzx ecx, byte [rbp - 0xd0]
call fcn.1802eb1d0
int3
call fcn.1802eb1f0
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.180231620
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 0x18009bf16
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 0x18009becd
lea rcx, [0x180586e88]
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 0x18009bee2
mov ecx, dword [rbp - 0x158]
add ecx, 0x12
mov dword [rbp - 0x158], ecx
jmp 0x18009bef5
lea rcx, [rbp - 0x168]
lea rdx, [0x180586e88]
call fcn.180231ab0
lea rcx, [rbp - 0x168]
movzx edx, byte [rbp - 0xd0]
call fcn.1804f0360
mov ebx, dword [rbp - 0x158]
cmp ebx, dword [rbp - 0x148]
jbe 0x18009bf1c
call fcn.1801d27b0
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 0x18009bf53
lea rdx, [0x1805346f0]
add rdx, 0xc
mov r8d, 0x52
call fcn.18019f3e0
mov ebx, 1
test ebx, ebx
je 0x18009bf68
mov ecx, dword [rbp - 0x158]
add ecx, 0x29
mov dword [rbp - 0x158], ecx
jmp 0x18009bf7b
lea rcx, [rbp - 0x168]
lea rdx, [0x1805346f0]
call fcn.180231ab0
lea rcx, [0x1805e56d0]
call fcn.18000b300
mov rbx, rax
lea rcx, [rbp - 0x168]
call fcn.1802317e0
mov dword [rbx + 0x48], 0x80131500
lea rcx, [rbx + 8]
mov rdx, rax
call fcn.18000b510
mov dword [rbx + 0x48], 0x80131501
mov rcx, rbx
call fcn.18000b8f0
lea rcx, [0x1805e56d0]
call fcn.18000b300
mov rbx, rax
mov rcx, rbx
lea rdx, [0x18055cc30]
call fcn.1801d2700
mov rcx, rbx
call fcn.18000b8f0
lea rcx, [0x1805e56d0]
call fcn.18000b300
mov rbx, rax
mov rcx, rbx
lea rdx, [0x18055cb50]
call fcn.1801d2700
mov rcx, rbx
call fcn.18000b8f0
call fcn.180001cd4
jmp 0x18009bc97
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
jmp 0x18009bcb7
cmp byte [rbp - 0xca], 0
je 0x18009c04a
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009bce5
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x18009c061
mov r8d, r10d
call fcn.1801d1080
jmp 0x18009c065
xor ecx, ecx
mov eax, ecx
jmp 0x18009bce5
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x38]
test rdx, rdx
jne 0x18009c081
xor ecx, ecx
xor r8d, r8d
jmp 0x18009c089
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c09e
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c0ca
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
jmp 0x18009c111
cmp byte [rbp - 0xca], 0
je 0x18009c0f6
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c111
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x18009c10d
mov r8d, r10d
call fcn.1801d1080
jmp 0x18009c111
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x18009c130
lea rcx, [rbp - 0xf8]
lea rdx, [0x18058bdb0]
call fcn.18009b850
mov r14, rax
jmp 0x18009bd03
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 8]
test rdx, rdx
jne 0x18009c147
xor ecx, ecx
xor r8d, r8d
jmp 0x18009c14f
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c164
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c190
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
jmp 0x18009c1d7
cmp byte [rbp - 0xca], 0
je 0x18009c1bc
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c1d7
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x18009c1d3
mov r8d, r10d
call fcn.1801d1080
jmp 0x18009c1d7
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x18009c1f6
lea rcx, [rbp - 0xf8]
lea rdx, [0x18058dc10]
call fcn.18009b850
mov rbx, rax
jmp 0x18009bd03
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x18]
test rdx, rdx
jne 0x18009c20d
xor ecx, ecx
xor r8d, r8d
jmp 0x18009c215
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c22a
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c256
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
jmp 0x18009c29d
cmp byte [rbp - 0xca], 0
je 0x18009c282
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c29d
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x18009c299
mov r8d, r10d
call fcn.1801d1080
jmp 0x18009c29d
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x18009c2bc
lea rcx, [rbp - 0xf8]
lea rdx, [0x18058dc40]
call fcn.18009b850
mov rsi, rax
jmp 0x18009bd03
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x88]
test rdx, rdx
jne 0x18009c2d6
xor ecx, ecx
xor r8d, r8d
jmp 0x18009c2de
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c2f3
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c31f
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
jmp 0x18009c366
cmp byte [rbp - 0xca], 0
je 0x18009c34b
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c366
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x18009c362
mov r8d, r10d
call fcn.1801d1080
jmp 0x18009c366
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x18009c390
lea rcx, [rbp - 0xf8]
lea rdx, [0x180592798]
call fcn.18009ba00
mov qword [rbp - 0x140], rax
mov r12d, dword [rbp - 0x13c]
jmp 0x18009bd03
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x48]
test rdx, rdx
jne 0x18009c3a7
xor ecx, ecx
xor r8d, r8d
jmp 0x18009c3af
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c3c4
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c3f0
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
jmp 0x18009c437
cmp byte [rbp - 0xca], 0
je 0x18009c41c
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c437
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x18009c433
mov r8d, r10d
call fcn.1801d1080
jmp 0x18009c437
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x18009c4fd
lea rcx, [rbp - 0xf8]
call fcn.18009b660
lea rcx, [rbp - 0xf8]
call fcn.18009b780
lea rcx, [0x180608f00]
call fcn.18000b300
mov r15, rax
mov rcx, qword [0x180a3dbb0]
mov rdx, qword [rcx + 8]
lea rcx, [r15 + 8]
call fcn.18000b510
lea rcx, [rbp - 0xf8]
call fcn.18009b660
test eax, eax
je 0x18009bd03
movzx eax, byte [rbp - 0xd0]
cmp eax, 1
jne 0x18009c4df
lea rcx, [rbp - 0xf8]
call fcn.18009c820
inc dword [r15 + 0x14]
mov rcx, qword [r15 + 8]
mov edx, dword [r15 + 0x10]
mov r8d, dword [rcx + 8]
cmp r8d, edx
jbe 0x18009c4d2
lea r8d, [rdx + 1]
mov dword [r15 + 0x10], r8d
lea rcx, [rcx + rdx*8 + 0x10]
mov rdx, rax
call fcn.18000b510
jmp 0x18009c4e8
mov rcx, r15
mov rdx, rax
call fcn.18042e400
jmp 0x18009c4e8
cmp eax, 4
je 0x18009bd03
lea rcx, [rbp - 0xf8]
call fcn.18009b660
test eax, eax
jne 0x18009c48e
jmp 0x18009bd03
mov rax, qword [rbp - 0x1b8]
mov rdx, qword [rax + 0x78]
test rdx, rdx
jne 0x18009c514
xor ecx, ecx
xor r8d, r8d
jmp 0x18009c51c
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c531
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c55d
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
jmp 0x18009c5a4
cmp byte [rbp - 0xca], 0
je 0x18009c589
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], r8d
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c5a4
mov rdx, qword [rbp - 0x60]
mov r10d, dword [rbp - 0x58]
cmp r8d, r10d
jne 0x18009c5a0
mov r8d, r10d
call fcn.1801d1080
jmp 0x18009c5a4
xor ecx, ecx
mov eax, ecx
test eax, eax
je 0x18009c5c3
lea rcx, [rbp - 0xf8]
lea rdx, [0x18058f1e0]
call fcn.18009b850
mov r13, rax
jmp 0x18009bd03
lea rax, str.ProtocolVersion
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c5df
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c60e
mov qword [rbp - 0x1a8], rax
mov dword [rbp - 0x1a0], shutdown
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
jmp 0x18009c66a
cmp byte [rbp - 0xca], 0
je 0x18009c63d
mov qword [rbp - 0x1a8], rax
mov dword [rbp - 0x1a0], shutdown
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c66a
mov rdx, qword [rbp - 0x60]
mov ecx, dword [rbp - 0x58]
cmp ecx, 0xf
jne 0x18009c668
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 0x18009c66a
xor eax, eax
test eax, eax
jne 0x18009bde7
mov rdx, qword [rbp - 0x1b8]
mov rdx, qword [rdx + 0x98]
test rdx, rdx
jne 0x18009c68b
xor ecx, ecx
xor eax, eax
jmp 0x18009c692
lea rcx, [rdx + 0x10]
mov eax, dword [rdx + 8]
movzx edx, byte [rbp - 0xd0]
cmp edx, 5
je 0x18009c6a7
cmp edx, 7
jne 0x18009be0d
cmp byte [rbp - 0xcb], 0
je 0x18009c6f2
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], eax
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f5da0
test eax, eax
je 0x18009c735
lea rcx, [rbp - 0xf8]
lea rdx, [0x180595df8]
call fcn.18009b7e0
mov dword [rbp - 0xfc], eax
jmp 0x18009bd03
cmp byte [rbp - 0xca], 0
je 0x18009c71d
mov qword [rbp - 0x1a8], rcx
mov dword [rbp - 0x1a0], eax
lea rdx, [rbp - 0x1a8]
lea rcx, [rbp - 0xf8]
call fcn.1802f6170
jmp 0x18009c6d0
mov rdx, qword [rbp - 0x60]
mov r8d, dword [rbp - 0x58]
cmp eax, r8d
jne 0x18009c731
call fcn.1801d1080
jmp 0x18009c733
xor eax, eax
jmp 0x18009c6d0
cmp byte [rbp - 0xd4], 0
je 0x18009be1a
cmp byte [rbp - 0xd0], 5
jne 0x18009c757
lea rcx, [rbp - 0xf8]
call fcn.1802f5bc0
movzx ecx, byte [rbp - 0xd0]
cmp ecx, 1
je 0x18009c76c
cmp ecx, 3
jne 0x18009bd03
mov edx, dword [rbp - 0xa0]
cmp ecx, 3
je 0x18009c77c
cmp ecx, 1
jne 0x18009c77e
dec edx
mov dword [rbp - 0x194], edx
lea rcx, [rbp - 0xf8]
call fcn.1802f5bc0
mov ecx, dword [rbp - 0xa0]
movzx eax, byte [rbp - 0xd0]
cmp eax, 3
je 0x18009c7a7
cmp eax, 1
jne 0x18009c7a9
dec ecx
mov edx, dword [rbp - 0x194]
cmp edx, ecx
jl 0x18009c784
jmp 0x18009bd03
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret