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

Disassembly:
mov eax, dword [rcx + 0x48]
xor r8d, r8d
mov rcx, qword [rcx + 0x110]
dec eax
cmp eax, 1
mov edx, 0x33001
setbe r8b
add r8d, 0x34002
jmp 0x140183550
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp dword [0x1403c28c0], 0
mov edi, r8d
mov rbx, rcx
jne 0x14018357f
xor edx, edx
mov ecx, 0x10001
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140181330
cmp edx, 0x33001
jne 0x1401835d2
lea eax, [r8 - 0x34001]
cmp eax, 2
jbe 0x14018359f
lea rdx, str.Invalid_cursor_mode_0x_08X
jmp 0x14018374b
cmp dword [rcx + 0x7c], edi
je 0x140183755
lea r8, [rcx + 0x1f0]
mov dword [rcx + 0x7c], edi
lea rdx, [rcx + 0x1e8]
call fcn.1401850a0
mov edx, edi
mov rcx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x140185790
cmp edx, 0x33002
jne 0x14018361f
xor edx, edx
test edi, edi
setne dl
cmp dword [rcx + 0x70], edx
je 0x140183755
test edi, edi
jne 0x140183611
lea rax, [rcx + 0x88]
mov ecx, 0x15d
nop word [rax + rax]
cmp byte [rax], 3
jne 0x140183608
mov byte [rax], 0
inc rax
sub rcx, 1
jne 0x140183600
mov dword [rbx + 0x70], edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp edx, 0x33003
jne 0x1401836d1
xor edx, edx
test edi, edi
setne dl
cmp dword [rcx + 0x74], edx
je 0x140183755
test edi, edi
jne 0x1401836c3
cmp byte [rcx + 0x80], 3
jne 0x140183653
mov byte [rcx + 0x80], dil
cmp byte [rcx + 0x81], 3
jne 0x140183663
mov byte [rcx + 0x81], 0
cmp byte [rcx + 0x82], 3
jne 0x140183673
mov byte [rcx + 0x82], 0
cmp byte [rcx + 0x83], 3
jne 0x140183683
mov byte [rcx + 0x83], 0
cmp byte [rcx + 0x84], 3
jne 0x140183693
mov byte [rcx + 0x84], 0
cmp byte [rcx + 0x85], 3
jne 0x1401836a3
mov byte [rcx + 0x85], 0
cmp byte [rcx + 0x86], 3
jne 0x1401836b3
mov byte [rcx + 0x86], 0
cmp byte [rcx + 0x87], 3
jne 0x1401836c3
mov byte [rcx + 0x87], 0
mov dword [rcx + 0x74], edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp edx, 0x33004
jne 0x1401836ee
xor edx, edx
test edi, edi
setne dl
mov dword [rcx + 0x78], edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp edx, 0x33005
jne 0x140183741
call fcn.14000d9b0
test eax, eax
jne 0x14018371a
lea rdx, str.Raw_mouse_motion_is_not_supported_on_this_system
mov ecx, 0x10008
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140181330
xor edx, edx
test edi, edi
setne dl
cmp dword [rbx + 0x1f8], edx
je 0x140183755
mov rcx, rbx
mov dword [rbx + 0x1f8], edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x140185840
mov r8d, edx
lea rdx, str.Invalid_input_mode_0x_08X
mov ecx, 0x10003
call fcn.140181330
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
push rbx
sub rsp, 0x20
mov rbx, rcx
cmp edx, 0x34003
jne 0x1401857bd
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp qword [rbx + 0x350], rax
jne 0x1401857e6
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.140186850
cmp qword [0x1403c4d38], rbx
jne 0x1401857d0
add rsp, 0x20
pop rbx
jmp fcn.140186940
call fcn.1401867b0
test eax, eax
je 0x1401857e6
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.140186d00
add rsp, 0x20
pop rbx
ret
sub rsp, 0x38
cmp qword [0x1403c4d38], rcx
jne 0x1401858ca
mov r8d, reloc.WS2_32.dll_recv
test edx, edx
lea edx, [r8 - 0xf]
je 0x140185895
mov rax, qword [rcx + 0x350]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x20001
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x1401858ca
lea rdx, str.Win32:_Failed_to_register_raw_input_device
mov ecx, 0x10008
call fcn.1401892e0
add rsp, 0x38
ret
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x20001
mov dword [rsp + 0x24], edx
mov qword [rsp + 0x28], 0
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x1401858ca
lea rdx, str.Win32:_Failed_to_remove_raw_input_device
mov ecx, 0x10008
call fcn.1401892e0
add rsp, 0x38
ret