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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x58
mov rax, qword [0x14022b800]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbp, qword [rsp + 0xb0]
xor edi, edi
mov qword [rsp + 0x30], rdi
mov rsi, r9
mov r14d, r8d
mov r15, rdx
mov rbx, rcx
cmp r8d, 0x8010
ja 0x140056cf2
je 0x140056ce8
cmp r8d, 0xff
ja 0x140056cc8
je 0x140056b29
cmp r8d, 2
je 0x140056a61
cmp r8d, 0x16
je 0x140056a3d
cmp r8d, 0x4a
jne case.0x140056d1d.32790
mov edx, esi
mov r8d, edi
jmp 0x140056da1
cmp rsi, 1
jne case.0x140056d1d.32790
mov rcx, qword [rcx + 0x50]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80d3
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x140056d52
mov byte [rcx + 0x2b0], dil
mov rcx, qword [rcx + 0x218]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [rbx + 0x220]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [rbx + 0x230]
call fcn.14002e9d0
mov rcx, qword [rbx + 0x238]
call fcn.14002e9d0
mov rcx, qword [rbx + 0x50]
call qword [sym.imp.WTSAPI32.dll_WTSUnRegisterSessionNotification]
cmp qword [rbx + 0x60], rdi
je 0x140056acb
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x140056acb
lea rdx, str.UnregisterSuspendResumeNotification
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140056acb
mov rcx, qword [rbx + 0x60]
call rax
mov rcx, qword [rbx + 0x68]
test rcx, rcx
je 0x140056ada
call qword [sym.imp.USER32.dll_UnregisterDeviceNotification]
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x140056ae9
call qword [sym.imp.USER32.dll_UnregisterPowerSettingNotification]
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x140056af8
call qword [sym.imp.USER32.dll_UnregisterPowerSettingNotification]
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x140056b0a
call qword [sym.imp.USER32.dll_UnregisterPowerSettingNotification]
mov rcx, qword [rbx + 0x88]
test rcx, rcx
je 0x140056b1c
call qword [sym.imp.USER32.dll_UnregisterPowerSettingNotification]
xor ecx, ecx
call qword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x140056d52
test rbp, rbp
je 0x140056c9b
lea r9, [rsp + 0x40]
mov dword [rsp + 0x40], edi
xor r8d, r8d
mov dword [rsp + 0x20], 0x18
mov edx, 0x10000003
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetRawInputData]
mov r9d, dword [rsp + 0x40]
mov r8d, eax
test eax, eax
jne 0x140056c88
test r9d, r9d
je 0x140056c88
mov ecx, r9d
call fcn.14014f93c
lea r9, [rsp + 0x40]
mov dword [rsp + 0x20], 0x18
mov r8, rax
mov edx, 0x10000003
mov rcx, rbp
mov r14, rax
call qword [sym.imp.USER32.dll_GetRawInputData]
mov r8d, dword [rsp + 0x40]
mov edx, eax
mov qword [rsp + 0x30], rdx
cmp rdx, r8
jne 0x140056c68
mov eax, dword [r14]
cmp eax, 1
jne 0x140056bd5
lea rax, [rsp + 0x30]
mov r9, r14
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x8084
mov rcx, rbx
call fcn.140056ef0
jmp 0x140056c79
test eax, eax
jne 0x140056c79
mov eax, dword [r14 + 0x24]
mov dword [rsp + 0x38], eax
mov eax, dword [r14 + 0x28]
mov dword [rsp + 0x3c], eax
movzx eax, word [r14 + 0x18]
cmp di, ax
jne 0x140056c0b
call fcn.140062260
mov rdx, qword [rsp + 0x38]
mov rcx, rax
call fcn.1400613b0
jmp 0x140056c21
test al, 1
je 0x140056c21
call fcn.140062260
mov rdx, qword [rsp + 0x38]
mov rcx, rax
call fcn.1400548d0
call fcn.140062260
mov rcx, rax
lea rdx, [rsp + 0x38]
call fcn.140054990
mov r9, r14
xor r8d, r8d
mov edx, 0x8085
mov rcx, qword [rax]
mov eax, ecx
mov qword [rsp + 0x38], rcx
mov dword [r14 + 0x24], ecx
lea rax, [rsp + 0x30]
shr rcx, 0x20
mov dword [r14 + 0x28], ecx
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140056ef0
jmp 0x140056c79
lea rdx, str.GetRawInputData_bad_size__dwSize__d_
mov ecx, 3
call fcn.1400838f0
mov edx, 1
mov rcx, r14
call fcn.14014f59c
jmp 0x140056cac
lea rdx, str.GetRawInputData_failed__d__dwSize__d_
mov ecx, 3
call fcn.1400838f0
jmp 0x140056cac
lea rdx, str.WM_INPUT_lParam_is_NULL
mov ecx, 3
call fcn.1400838f0
mov r9, rbp
mov r8, rsi
mov edx, 0xff
mov rcx, r15
call qword [sym.imp.USER32.dll_DefWindowProcW]
mov rdi, rax
jmp 0x140056d52
cmp r14d, 0x113
je 0x140056cde
cmp r14d, 0x312
jne case.0x140056d1d.32790
mov edx, esi
mov r8, rdi
jmp 0x140056da4
mov edx, 0x809d
jmp 0x140056d9e
lea eax, [r8 - 0x8011]
cmp eax, 0xc2
ja case.0x140056d1d.32790
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x56e20]
mov ecx, dword [rdx + rax*4 + 0x56df8]
add rcx, rdx
jmp rcx
mov rcx, rbx
call fcn.140057f00
jmp 0x140056d52
lea rax, [rsp + 0x30]
mov r9, rbp
mov r8, rsi
mov qword [rsp + 0x20], rax
mov edx, r14d
mov rcx, rbx
call fcn.140056ef0
mov rcx, r15
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdi, qword [rsp + 0x30]
mov rax, rdi
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14014f2f0
add rsp, 0x58
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov edx, 0x809e
jmp 0x140056d9e
mov edx, 0x80a0
jmp 0x140056d9e
mov edx, 0x80a1
jmp 0x140056d9e
mov edx, 0x809b
jmp 0x140056d9e
mov edx, 0x809c
jmp 0x140056d9e
mov edx, 0x80a4
jmp 0x140056d9e
mov edx, 0x80a5
mov r8, rsi
mov rdi, rbp
lea rax, [rsp + 0x30]
mov r9, rdi
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140056ef0
test al, al
jne 0x140056d4d
lea rax, [rsp + 0x30]
mov r9, rbp
mov r8, rsi
mov qword [rsp + 0x20], rax
mov edx, r14d
mov rcx, rbx
call fcn.140056ef0
test al, al
jne 0x140056d4d
mov r9, rbp
mov r8, rsi
mov edx, r14d
mov rcx, r15
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x140056d55