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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r15, r8
xor r8d, r8d
mov rsi, r9
mov ebp, edx
mov r13, rcx
cmp dword [rsp + 0x88], r8d
jne 0x140096994
mov r12, qword [rsp + 0x80]
lea eax, [rdx - 0x200]
cmp eax, 0xd
ja 0x140096641
movzx r9d, byte [rcx + 0x160]
mov eax, r8d
test r9b, r9b
sete al
mov qword [r12], rax
test r9d, r9d
jne 0x1400966ad
lea eax, [rdx - 0x100]
cmp eax, 9
ja 0x140096663
movzx ecx, byte [rcx + 0x160]
mov rax, r8
test cl, cl
sete al
mov qword [r12], rax
test ecx, ecx
jne 0x1400966ad
mov r14d, 0x20
cmp edx, r14d
jne 0x1400966b7
movzx ebx, byte [r13 + 0x160]
xor ecx, ecx
mov edx, 0x7f02
test bl, bl
jne 0x140096686
mov edx, 0x7f00
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
xor r8d, r8d
cmp byte [r13 + 0x160], r8b
mov eax, r8d
sete al
mov qword [r12], rax
test ebx, ebx
je 0x1400966b7
mov eax, 1
jmp 0x140096996
mov eax, 0x204e
lea rdi, [r13 + 0x68]
cmp ebp, eax
jne 0x140096753
cmp dword [rsi + 0x10], 0xffffff94
jne 0x140096753
lea rbp, [rdi - 0x68]
test rdi, rdi
jne 0x1400966de
mov rbp, r8
mov ebx, 1
cmp byte [rdi + 4], r8b
je 0x14009672a
mov edx, dword [rdi + 8]
cmp dword [rsi + 0x1c], edx
jne 0x140096701
mov eax, dword [rdi]
sub eax, 2
neg eax
sbb eax, eax
and eax, 2
mov dword [rdi], eax
jmp 0x14009671a
mov r8d, ebx
mov rcx, rdi
call fcn.140096ea4
mov r11d, dword [rsi + 0x1c]
mov dword [rdi], 2
mov dword [rdi + 8], r11d
mov r8d, dword [rdi]
mov edx, dword [rdi + 8]
lea rcx, [rbp + 0x48]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r8d, dword [rdi]
mov edx, dword [rdi + 8]
mov rcx, rdi
call fcn.140096ea4
mov rcx, qword [rbp + 8]
mov r8d, ebx
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
and qword [r12], 0
mov eax, ebx
jmp 0x140096996
lea rdi, [r13 + 0xb0]
mov ebx, 1
cmp ebp, eax
jne 0x1400967e8
cmp dword [rsi + 0x10], 0xfffffff4
jne 0x1400967e8
test rdi, rdi
je 0x14009677b
add rdi, 0xffffffffffffff50
jmp 0x14009677e
mov rdi, r8
mov dword [rdi + 0x170], ebx
mov ecx, dword [rsi + 0x18]
mov edx, r8d
dec ecx
je 0x1400967d1
dec ecx
je 0x1400967d4
dec ecx
je 0x1400967d4
dec ecx
je 0x1400967d4
sub ecx, 0xfffd
je 0x1400967d1
dec ecx
je 0x1400967d4
dec ecx
je 0x1400967d4
dec ecx
je 0x1400967d4
cmp ecx, 0x1fffd
je 0x1400967bf
mov dword [rdi + 0x170], r8d
jmp 0x1400967d4
mov rdx, rsi
mov rcx, rdi
call fcn.1401aa8b0
xor r8d, r8d
mov edx, eax
jmp 0x1400967d4
mov edx, r14d
mov ecx, dword [rdi + 0x170]
mov eax, edx
mov qword [r12], rax
test ecx, ecx
jne 0x14009674c
mov r14d, dword [r13 + 0x88]
cmp ebp, 0x14
jne 0x14009680c
mov dword [r13 + 0x88], ebx
mov qword [r12], rbx
cmp dword [r13 + 0x88], r8d
je 0x140096852
mov eax, ebx
jmp 0x140096855
cmp ebp, 0xf
jne 0x140096830
lea rcx, [r13 + 0x88]
mov rdx, r15
mov dword [r13 + 0x88], ebx
call fcn.140096fa4
xor r8d, r8d
mov qword [r12], r8
jmp 0x1400967ff
cmp ebp, 5
jne 0x140096852
mov dword [r13 + 0x88], r8d
mov byte [r13 + 0x9c], bl
mov qword [r12], r8
mov eax, ebx
cmp dword [r13 + 0x88], r8d
jne 0x140096855
mov eax, r8d
mov dword [r13 + 0x88], r14d
test eax, eax
jne 0x14009674c
mov r14d, 0x20a
cmp ebp, r14d
jne 0x1400968b1
mov edi, ebx
cmp byte [r13 + 0xa8], r8b
je 0x14009689f
mov rcx, qword [r13 + 0xa0]
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetParent]
mov r9, rsi
mov r8, r15
mov rcx, rax
mov edx, r14d
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1400968a5
mov edi, r8d
mov rax, rbx
mov qword [r12], rax
test edi, edi
jne 0x14009674c
mov edx, 0x100
lea rcx, [r13 + 0x60]
cmp ebp, edx
jne 0x1400968cb
mov r9, rsi
mov r8, r15
call fcn.140096b64
jmp 0x1400968df
mov edx, 0x201
cmp ebp, edx
jne 0x1400968e8
mov r9, rsi
mov r8, r15
call fcn.140096d0c
mov qword [r12], rax
jmp 0x14009674c
cmp ebp, 0x204e
jne 0x140096994
cmp dword [rsi + 0x10], 0xffffff4f
jne 0x140096994
test byte [rsi + 0x18], bl
je 0x140096956
mov rax, qword [r13 + 0x48]
mov r9d, dword [rsi + 0x20]
mov r8d, dword [rsi + 0x1c]
lea rdx, [rsp + 0x20]
lea rcx, [r13 + 0x48]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
movsxd rdx, dword [rsi + 0x38]
mov r8, qword [rsp + 0x20]
mov rcx, qword [rsi + 0x30]
or rdi, 0xffffffffffffffff
mov r9, rdi
call fcn.1400bfd28
mov rdx, qword [rsp + 0x20]
mov eax, edi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140096956
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test byte [rsi + 0x18], 2
je 0x140096974
mov rcx, qword [r13 + 0x50]
mov r8d, dword [rsi + 0x20]
mov edx, dword [rsi + 0x1c]
add rcx, 0x48
mov rax, qword [rcx]
call qword [rax + 0x10]
mov dword [rsi + 0x3c], eax
test byte [rsi + 0x18], 8
je 0x140096747
test dword [rsi + 0x28], 0xf000
je 0x140096747
and dword [rsi + 0x24], 0
jmp 0x140096747
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret