Function at 0x14000175d
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x14006f540
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x100
mov rax, qword [0x140125350]
xor rax, rsp
mov qword [rbp + 0x27], rax
xor eax, eax
xor r15d, r15d
lea rdx, [rbp - 9]
mov qword [rbp - 0x1d], rax
mov qword [rbp - 0x15], rax
mov rax, qword [rcx]
mov r14, rcx
mov qword [rbp - 0x31], r15
mov dword [rbp - 0x39], r15d
mov dword [rbp - 0x21], r15d
call qword [rax + 0x20]
mov rax, qword [r14]
lea rdx, [rbp + 0x17]
mov rcx, r14
call qword [rax + 0x18]
mov rax, qword [r14]
lea rdx, [rbp + 7]
mov rcx, r14
call qword [rax + 0x28]
mov rax, qword [r14]
lea rdx, [rbp - 0x29]
mov rcx, r14
call qword [rax + 0x30]
mov ecx, dword [reloc.WSOCK32.dll_accept]
cmp ecx, 4
jl 0x14006f819
mov eax, dword [0x140124900]
bt eax, 0x15
jae 0x14006f670
movzx eax, byte [rbp + 6]
movzx ecx, byte [rbp + 5]
movzx edx, byte [rbp + 4]
movzx r8d, byte [rbp + 3]
movzx r9d, byte [rbp + 2]
movzx r10d, byte [rbp + 1]
movzx r11d, byte [rbp]
movzx ebx, byte [rbp - 1]
movzx edi, word [rbp - 3]
movzx esi, word [rbp - 5]
mov dword [rsp + 0x80], eax
mov eax, dword [rbp - 9]
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x58], r10d
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], eax
lea rax, str.sensorCategoryId___08lX__04hX__04hX__02X_02X__02X_02X_02X_02X_02X_02X_n
lea r9, str...cem_csimpleorientation.cpp
mov qword [rsp + 0x28], rax
lea r8, str.CSimpleOrientation::IsSensorCompatible
lea edx, [r15 + 4]
mov ecx, 0x200000
mov dword [rsp + 0x20], 0x12e
call fcn.140001a41
mov ecx, dword [reloc.WSOCK32.dll_accept]
mov eax, dword [0x140124900]
cmp ecx, 4
jl 0x14006f819
bt eax, 0x15
jae 0x14006f722
movzx eax, byte [rbp + 0x26]
movzx ecx, byte [rbp + 0x25]
movzx edx, byte [rbp + 0x24]
movzx r8d, byte [rbp + 0x23]
movzx r9d, byte [rbp + 0x22]
movzx r10d, byte [rbp + 0x21]
movzx r11d, byte [rbp + 0x20]
movzx ebx, byte [rbp + 0x1f]
movzx edi, word [rbp + 0x1d]
movzx esi, word [rbp + 0x1b]
mov dword [rsp + 0x80], eax
mov eax, dword [rbp + 0x17]
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x58], r10d
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], eax
lea rax, str.id___08lX__04hX__04hX__02X_02X__02X_02X_02X_02X_02X_02X_n
lea r9, str...cem_csimpleorientation.cpp
mov qword [rsp + 0x28], rax
lea r8, str.CSimpleOrientation::IsSensorCompatible
mov edx, 4
mov ecx, 0x200000
mov dword [rsp + 0x20], 0x12f
call fcn.140001a41
mov ecx, dword [reloc.WSOCK32.dll_accept]
mov eax, dword [0x140124900]
cmp ecx, 4
jl 0x14006f819
bt eax, 0x15
jae 0x14006f7d4
movzx eax, byte [rbp + 0x16]
movzx ecx, byte [rbp + 0x15]
movzx edx, byte [rbp + 0x14]
movzx r8d, byte [rbp + 0x13]
movzx r9d, byte [rbp + 0x12]
movzx r10d, byte [rbp + 0x11]
movzx r11d, byte [rbp + 0x10]
movzx ebx, byte [rbp + 0xf]
movzx edi, word [rbp + 0xd]
movzx esi, word [rbp + 0xb]
mov dword [rsp + 0x80], eax
mov eax, dword [rbp + 7]
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x58], r10d
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], eax
lea rax, str.typeId___08lX__04hX__04hX__02X_02X__02X_02X_02X_02X_02X_02X_n
lea r9, str...cem_csimpleorientation.cpp
mov qword [rsp + 0x28], rax
lea r8, str.CSimpleOrientation::IsSensorCompatible
mov edx, 4
mov ecx, 0x200000
mov dword [rsp + 0x20], 0x130
call fcn.140001a41
mov ecx, dword [reloc.WSOCK32.dll_accept]
mov eax, dword [0x140124900]
cmp ecx, 4
jl 0x14006f819
bt eax, 0x15
jae 0x14006f819
mov rax, qword [rbp - 0x29]
lea r9, str...cem_csimpleorientation.cpp
lea r8, str.CSimpleOrientation::IsSensorCompatible
mov qword [rsp + 0x30], rax
lea rax, str.name___S_n
mov edx, 4
mov qword [rsp + 0x28], rax
mov ecx, 0x200000
mov dword [rsp + 0x20], 0x131
call fcn.140001a41
mov rax, qword [r14]
lea rdx, [rbp - 0x31]
mov rcx, r14
call qword [rax + 0x48]
test eax, eax
jns 0x14006f881
cmp dword [reloc.WSOCK32.dll_accept], 2
mov qword [rbp - 0x31], r15
jl 0x14006fa13
test dword [0x1401248de], 0x200000
je 0x14006fa13
lea rax, str.Unable_to_get_supported_field_for_sensor_n
lea r9, str...cem_csimpleorientation.cpp
lea r8, str.CSimpleOrientation::IsSensorCompatible
mov qword [rsp + 0x28], rax
mov edx, 2
mov ecx, 0x200000
mov dword [rsp + 0x20], 0x137
call fcn.140001a41
jmp 0x14006fa04
mov rcx, qword [rbp - 0x31]
lea rdx, [rbp - 0x39]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r14d, r15d
cmp dword [rbp - 0x39], r15d
jbe 0x14006fa04
mov qword [rsp + 0x138], r12
lea r12, str.PID___d___08lX__04hX__04hX__02X_02X__02X_02X_02X_02X_02X_02X_n
nop dword [rax + rax]
mov rcx, qword [rbp - 0x31]
lea r8, [rbp - 0x21]
mov edx, r14d
mov rax, qword [rcx]
call qword [rax + 0x20]
test eax, eax
js 0x14006f9a1
cmp dword [reloc.WSOCK32.dll_accept], 4
jl 0x14006f97c
test dword [0x140124900], 0x200000
je 0x14006f97c
movzx eax, byte [rbp - 0x12]
movzx ecx, byte [rbp - 0x13]
movzx edx, byte [rbp - 0x14]
movzx r8d, byte [rbp - 0x15]
movzx r9d, byte [rbp - 0x16]
movzx r10d, byte [rbp - 0x17]
movzx r11d, byte [rbp - 0x18]
movzx ebx, byte [rbp - 0x19]
movzx edi, word [rbp - 0x1b]
movzx esi, word [rbp - 0x1d]
mov dword [rsp + 0x88], eax
mov eax, dword [rbp - 0x21]
mov dword [rsp + 0x80], ecx
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x70], r8d
mov dword [rsp + 0x68], r9d
mov dword [rsp + 0x60], r10d
mov dword [rsp + 0x58], r11d
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], eax
mov eax, dword [rbp - 0x11]
lea r9, str...cem_csimpleorientation.cpp
mov dword [rsp + 0x30], eax
lea r8, str.CSimpleOrientation::IsSensorCompatible
mov edx, 4
mov ecx, 0x200000
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], 0x144
call fcn.140001a41
mov eax, dword [reloc.WSOCK32.dll_select]
cmp dword [rbp - 0x11], eax
jne 0x14006f9a1
mov rax, qword [rbp - 0x21]
cmp rax, qword [0x140101c58]
jne 0x14006f9a1
mov rax, qword [rbp - 0x19]
cmp rax, qword [0x140101c60]
je 0x14006f9b0
inc r14d
cmp r14d, dword [rbp - 0x39]
jb 0x14006f8b0
jmp 0x14006f9fc
cmp dword [reloc.WSOCK32.dll_accept], 4
jl 0x14006f9f6
test dword [0x140124900], 0x200000
je 0x14006f9f6
lea rax, str.Supported_Simple_sensor_found_n
lea r9, str...cem_csimpleorientation.cpp
lea r8, str.CSimpleOrientation::IsSensorCompatible
mov qword [rsp + 0x28], rax
mov edx, 4
mov ecx, 0x200000
mov dword [rsp + 0x20], 0x147
call fcn.140001a41
mov r15d, 1
mov r12, qword [rsp + 0x138]
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x14006fa13
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov eax, r15d
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14008d900
mov rbx, qword [rsp + 0x140]
add rsp, 0x100
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret