Function at 0x140072150
Capabilities:
Log keystrokes via polling

Disassembly:
mov byte [rsp + 0x18], r8b
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x118
mov qword [rsp + 0x100], 0xfffffffffffffffe
movzx ebp, r8b
mov rdi, rcx
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x3e0]
test al, al
je 0x1400721af
movzx r8d, bpl
mov rdx, qword [rsp + 0x168]
mov rcx, rdi
call fcn.140071d10
jmp 0x14007372d
mov rcx, qword [rdi + 0x28]
call fcn.140065e00
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x478]
movzx r13d, al
mov byte [rsp + 0x178], al
test al, al
je 0x14007221c
mov rcx, qword [rdi + 0x28]
call fcn.140061c90
test al, al
je 0x14007221c
mov rcx, qword [rdi + 0x28]
mov rcx, qword [rcx + 0xf8]
lea rdx, [rsp + 0x80]
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x14007372d
lea rcx, [rdi + 0x18]
mov qword [rsp + 0xd0], rcx
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov dword [rdi + 0xc], 0
mov qword [rdi + 0x30], 0
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x420]
mov r12d, eax
mov rcx, qword [rdi + 0x28]
mov rdx, qword [rcx]
call qword [rdx + 0x428]
mov r14d, eax
mov eax, 8
cmp r12d, eax
cmovl r12d, eax
mov dword [rsp + 0xa0], r12d
cmp r14d, eax
cmovl r14d, eax
mov dword [rsp + 0x74], r14d
mov rcx, qword [rdi + 0x28]
call fcn.140178760
mov r15, rax
lea rdx, [rsp + 0xf0]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov bl, bpl
test bpl, bpl
jne 0x14007231d
mov rcx, qword [rdi + 0x28]
call fcn.140061ce0
test al, al
je 0x14007231d
lea rdx, str.CExtDynControlBar
mov rcx, qword [rdi + 0x28]
call fcn.14001b150
test eax, eax
jne 0x1400722c9
test r13b, r13b
jne 0x14007231d
mov rcx, qword [rdi + 0x28]
call fcn.140013ba8
mov rsi, rax
lea rdx, str.CMiniFrameWnd
mov rcx, rax
call fcn.14001b150
test eax, eax
je 0x14007231d
lea rdx, [rsp + 0x80]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_PtInRect]
movzx ebx, bl
test eax, eax
mov eax, 1
cmovne ebx, eax
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x140073509
test bl, bl
jne 0x140073509
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x5a0]
mov byte [rsp + 0x70], al
test al, al
je 0x140073016
lea rcx, [rsp + 0xa8]
call fcn.140066010
nop
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x20], rax
mov r9d, 0x8584
lea r8, [rsp + 0xa8]
xor edx, edx
mov rcx, qword [rdi + 0x28]
call fcn.14006c960
xor r11d, r11d
mov rax, qword [rsp + 0xb8]
test eax, eax
jle 0x14007278c
movsxd rcx, eax
mov r8, qword [rsp + 0xb0]
nop dword [rax]
test r11, r11
js 0x14007277e
cmp r11, rax
jge 0x14007277e
mov rdx, qword [r8 + r11*8]
cmp rdx, qword [rdi + 0x28]
jne 0x1400723d9
inc r11
cmp r11, rcx
jl 0x1400723b0
jmp 0x14007278c
test rdx, rdx
je 0x14007278c
xor r8d, r8d
mov rcx, rdi
call fcn.1400647d0
mov rcx, qword [rdi + 0x30]
call fcn.140013ba8
lea rdx, [rsp + 0x50]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x420]
mov ebp, eax
mov rcx, qword [rdi + 0x30]
mov rdx, qword [rcx]
call qword [rdx + 0x428]
mov esi, eax
mov rcx, qword [rdi + 0x30]
mov rbx, qword [rcx + 0xf8]
mov rcx, qword [rdi + 0x28]
test dword [rcx + 0xe8], 0xf000
je 0x140072784
and byte [rdi + 8], 0xfd
mov rcx, qword [rdi + 0x30]
lea rdx, str.CExtDockBar
mov rcx, qword [rcx + 0xf8]
call fcn.14001b150
test eax, eax
je 0x14007246e
mov rcx, qword [rdi + 0x30]
call fcn.140061ce0
test al, al
je 0x140072472
or byte [rdi + 8], 2
lea rdx, [rsp + 0x60]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
movaps xmm5, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm5
mov r8d, dword [rsp + 0x5c]
mov eax, r8d
mov r10d, dword [rsp + 0x54]
sub eax, r10d
cdq
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, dword [rsp + 0x58]
mov ecx, eax
mov r9d, dword [rsp + 0x50]
sub ecx, r9d
cmp ecx, r12d
jl 0x14007262e
cmp edx, r14d
jl 0x14007262e
cmp edx, esi
jl 0x14007262e
movdqa xmmword [rsp + 0x40], xmm5
mov rax, qword [rsp + 0x50]
shr rax, 0x20
add eax, 0x20
mov dword [rsp + 0x4c], eax
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
mov rdx, qword [rdi + 0x30]
call qword [rax + 0x5b0]
test al, al
je 0x140072617
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, qword [rdi + 0x28]
call qword [rax + 0x5b0]
test al, al
je 0x140072617
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x14007257a
or byte [rdi + 8], 2
mov eax, 1
mov dword [rdi + 0xc], eax
mov eax, dword [rsp + 0x5c]
sub eax, dword [rsp + 0x54]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rsp + 0x44]
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x40]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x48]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x48], ecx
mov bpl, byte [rsp + 0x170]
jmp 0x14007273d
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0x58]
shr rax, 0x20
sub eax, 0x20
mov dword [rsp + 0x44], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x1400725fd
or byte [rdi + 8], 2
mov dword [rdi + 0xc], 2
mov eax, dword [rsp + 0x5c]
sub eax, dword [rsp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov dword [rsp + 0x44], ecx
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x40]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x48]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x48], ecx
mov bpl, byte [rsp + 0x170]
jmp 0x14007273d
mov r8d, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x50]
movaps xmm5, xmmword [rsp + 0x50]
jmp 0x14007262e
mov dword [rdi + 0xc], 0
mov bpl, 1
mov byte [rsp + 0x170], bpl
jmp 0x14007273d
sub eax, r9d
cdq
sub eax, edx
sar eax, 1
sub r8d, r10d
cmp r8d, r14d
jl 0x140072735
cmp eax, r12d
jl 0x140072735
cmp eax, ebp
jl 0x140072735
movdqa xmmword [rsp + 0x40], xmm5
lea eax, [r9 + 0x20]
mov dword [rsp + 0x48], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x1400726c4
or byte [rdi + 8], 2
mov dword [rdi + 0xc], 3
mov eax, dword [rsp + 0x58]
sub eax, dword [rsp + 0x50]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rsp + 0x40]
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x44]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x44], ecx
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x4c]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x4c], ecx
mov bpl, byte [rsp + 0x170]
jmp 0x14007273d
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
mov eax, dword [rsp + 0x58]
add eax, 0xffffffe0
mov dword [rsp + 0x40], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072735
or byte [rdi + 8], 2
mov dword [rdi + 0xc], 4
mov eax, dword [rsp + 0x58]
sub eax, dword [rsp + 0x50]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x44]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x44], ecx
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x4c]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x4c], ecx
mov bpl, byte [rsp + 0x170]
cmp dword [rdi + 0xc], 0
je 0x14007278c
mov eax, dword [rsp + 0x48]
sub eax, dword [rsp + 0x40]
cmp eax, r12d
jge 0x140072757
mov dword [rdi + 0xc], 0
mov eax, dword [rsp + 0x4c]
sub eax, dword [rsp + 0x44]
cmp eax, r14d
jge 0x14007276b
mov dword [rdi + 0xc], 0
cmp dword [rdi + 0xc], 0
je 0x14007278c
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x50], xmm0
jmp 0x14007278c
call fcn.1400093e4
int3
mov bpl, byte [rsp + 0x170]
lea rcx, [rsp + 0xa8]
call fcn.140066030
cmp dword [rdi + 0xc], 0
jne 0x140073016
test bpl, bpl
jne 0x140073016
xor r14d, r14d
mov dword [rsp + 0x60], r14d
xor r12d, r12d
mov dword [rsp + 0x64], r12d
xor r13d, r13d
mov dword [rsp + 0x68], r13d
xor ebp, ebp
mov dword [rsp + 0x6c], ebp
xor esi, esi
lea rdi, [0x1401ec2c8]
mov ebx, dword [rsi + rdi]
mov edx, ebx
mov rcx, r15
call fcn.140026ec4
mov qword [rsp + rsi + 0xa8], rax
lea rdx, [rsp + 0x40]
mov ecx, dword [rax + 0x170]
mov dword [rdx], ecx
mov ecx, dword [rax + 0x174]
mov dword [rdx + 4], ecx
mov ecx, dword [rax + 0x178]
mov dword [rdx + 8], ecx
mov eax, dword [rax + 0x17c]
mov dword [rdx + 0xc], eax
sub ebx, 0xe81b
je 0x140072849
sub ebx, 1
je 0x140072842
sub ebx, 1
je 0x140072836
cmp ebx, 1
jne 0x140072857
mov rbp, qword [rsp + 0x40]
shr rbp, 0x20
mov dword [rsp + 0x6c], ebp
jmp 0x140072857
mov r13d, dword [rsp + 0x40]
mov dword [rsp + 0x68], r13d
jmp 0x140072857
mov r14d, dword [rsp + 0x48]
jmp 0x140072857
mov r12, qword [rsp + 0x48]
shr r12, 0x20
mov dword [rsp + 0x64], r12d
add rsi, 8
cmp rsi, 0x20
jl 0x1400727d3
mov dword [rsp + 0x60], r14d
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x90], xmm0
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov r8d, edx
lea rcx, [rsp + 0x90]
call qword [sym.imp.USER32.dll_InflateRect]
cmp r14d, r13d
mov rdi, qword [rsp + 0x160]
jge 0x140072ac6
cmp r12d, ebp
jge 0x140072abf
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x90]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072ab8
lea rbx, [0x1401ec2c8]
lea rsi, [0x1401ec2e8]
nop word [rax + rax]
mov ecx, dword [rbx + 4]
mov rax, qword [rdi + 0x28]
test dword [rax + 0xe8], ecx
je 0x1400729da
mov eax, dword [rbx]
movaps xmm0, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0x60], xmm0
sub eax, 0xe81b
je 0x1400729a7
sub eax, 1
je 0x14007297c
sub eax, 1
je 0x140072951
cmp eax, 1
jne 0x1400729d0
mov rax, qword [rsp + 0x98]
shr rax, 0x20
sub eax, 0x10
mov dword [rsp + 0x64], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x1400729ec
jmp 0x1400729d0
mov eax, dword [rsp + 0x98]
add eax, 0xfffffff0
mov dword [rsp + 0x60], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x140072a1c
jmp 0x1400729d0
mov eax, dword [rsp + 0x90]
add eax, 0x10
mov dword [rsp + 0x68], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x140072a4e
jmp 0x1400729d0
mov eax, dword [rsp + 0x94]
add eax, 0x10
mov dword [rsp + 0x6c], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x140072a7f
cmp dword [rdi + 0xc], 0
jne 0x140072acd
add rbx, 8
cmp rbx, rsi
jge 0x140072ab1
jmp 0x1400728e0
mov dword [rdi + 0xc], 0xa
mov ebx, 1
mov dword [rdi + 0x14], ebx
mov dword [rsp + 0x5c], ebp
mov rax, qword [rdi + 0x28]
sub ebp, dword [rax + 0x200]
mov dword [rsp + 0x54], ebp
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x58], r13d
jmp 0x140072ad2
mov dword [rdi + reloc.OLEAUT32.dll_VariantTimeToDosDateTime], 0xc
mov ebx, 1
mov dword [rdi + 0x14], ebx
mov dword [rsp + 0x58], r13d
mov rax, qword [rdi + 0x28]
sub r13d, dword [rax + 0x204]
mov dword [rsp + 0x50], r13d
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x5c], ebp
jmp 0x140072ad2
mov dword [rdi + 0xc], VariantTimeToDosDateTime
mov ebx, 1
mov dword [rdi + 0x14], ebx
mov dword [rsp + 0x50], r14d
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 0x204]
lea eax, [r14 + rcx]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x5c], ebp
jmp 0x140072ad2
mov dword [rdi + 0xc], 9
mov ebx, 1
mov dword [rdi + 0x14], ebx
mov dword [rsp + 0x54], r12d
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 0x200]
lea eax, [r12 + rcx]
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x58], r13d
jmp 0x140072ad2
mov ebx, 1
jmp 0x140072ad2
mov ebx, 1
jmp 0x140072ad2
mov ebx, 1
jmp 0x140072ad2
mov ebx, 1
jmp 0x140072ad2
mov ebx, 1
cmp dword [rdi + 0xc], 0
jne 0x140072faf
movaps xmm0, xmmword [rsp + 0xf0]
movdqa xmmword [rsp + 0x80], xmm0
mov edx, 0x20
mov r8d, edx
lea rcx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_InflateRect]
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072fbe
lea rdx, [rsp + 0x40]
mov rcx, qword [r15 + 0x40]
call qword [sym.imp.USER32.dll_GetClientRect]
mov dword [rsp + 0x38], ebx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
xor edx, edx
mov r9d, 0xe900
mov r8d, 0xffff
mov rcx, r15
call fcn.140065880
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.14000c39c
mov r11d, dword [rsp + 0x48]
cmp dword [rsp + 0x40], r11d
jge 0x140072feb
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x44], eax
jge 0x140072fdc
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072fcd
mov ebx, dword [rsp + 0x4c]
sub ebx, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x48]
sub ecx, dword [rsp + 0x40]
mov edx, 3
lea r8d, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov r13d, eax
mov edx, 3
lea r8d, [rdx + 1]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov r14d, eax
mov rcx, qword [rdi + 0x28]
mov rdx, qword [rcx + 0xf8]
mov r12d, dword [rdx + 0x15c]
xor ebp, ebp
mov r15b, byte [rsp + 0x178]
lea rax, [0x1401ec2c8]
mov edx, dword [rax + rbp + 4]
mov rcx, qword [rdi + 0x28]
test dword [rcx + 0xe8], edx
je 0x140072f94
mov ebx, dword [rax + rbp]
mov rsi, qword [rsp + rbp + 0xa8]
test r15b, r15b
je 0x140072c77
call fcn.140061c90
test al, al
je 0x140072c77
mov rax, qword [rdi + 0x28]
cmp rsi, qword [rax + 0xf8]
jne 0x140072c77
lea rdx, [rsp + 0xd8]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0xd8]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x140072fa3
lea rax, [0x1401ec2c8]
jmp 0x140072f94
mov rcx, rsi
call fcn.1400606a0
mov rsi, rax
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x60], xmm0
sub ebx, 0xe81b
je 0x140072ed9
sub ebx, 1
je 0x140072e23
sub ebx, 1
je 0x140072d6c
sub ebx, 1
jne 0x140072f87
mov rax, qword [rsp + 0x48]
shr rax, 0x20
sub eax, 0xc
mov dword [rsp + 0x64], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072f87
mov dword [rdi + 0xc], 6
mov ecx, dword [rsi + 0x15c]
mov dword [rdi + 0x14], ecx
lea eax, [r12 + 2]
cmp ecx, eax
jbe 0x140072d33
mov r8b, 1
mov edx, 0xe81c
mov rcx, rsi
call fcn.140183bc0
mov rbx, rax
mov r8b, 1
mov edx, 0xe81d
mov rcx, rsi
call fcn.140183bc0
mov rcx, rbx
call fcn.1401788a0
test al, al
je 0x140072d33
mov rcx, rbx
call fcn.1401788a0
test al, al
jne 0x140072d36
inc dword [rdi + 0x14]
mov edx, dword [rsp + 0x4c]
mov dword [rsp + 0x5c], edx
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 0x200]
mov eax, r14d
cmp ecx, r14d
cmovl eax, ecx
sub edx, eax
mov dword [rsp + 0x54], edx
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
jmp 0x140072f87
mov eax, dword [rsp + 0x48]
add eax, 0xfffffff4
mov dword [rsp + 0x60], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072f87
mov dword [rdi + 0xc], 8
mov ecx, dword [rsi + 0x15c]
mov dword [rdi + 0x14], ecx
lea eax, [r12 + 2]
cmp ecx, eax
jbe 0x140072de9
mov r8b, 1
mov edx, 0xe81b
mov rcx, rsi
call fcn.140183bc0
mov rbx, rax
mov r8b, 1
mov edx, 0xe81e
mov rcx, rsi
call fcn.140183bc0
mov rsi, rax
mov rcx, rbx
call fcn.1401788a0
test al, al
je 0x140072de9
mov rcx, rsi
call fcn.1401788a0
test al, al
jne 0x140072dec
inc dword [rdi + 0x14]
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x58], edx
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 0x204]
mov eax, r13d
cmp ecx, r13d
cmovl eax, ecx
sub edx, eax
mov dword [rsp + 0x50], edx
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x5c], eax
jmp 0x140072f87
mov eax, dword [rsp + 0x40]
add eax, 0xc
mov dword [rsp + 0x68], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072f87
mov dword [rdi + 0xc], 7
mov ecx, dword [rsi + 0x15c]
mov dword [rdi + 0x14], ecx
lea eax, [r12 + 2]
cmp ecx, eax
jbe 0x140072ea0
mov r8b, 1
mov edx, 0xe81b
mov rcx, rsi
call fcn.140183bc0
mov rbx, rax
mov r8b, 1
mov edx, 0xe81e
mov rcx, rsi
call fcn.140183bc0
mov rsi, rax
mov rcx, rbx
call fcn.1401788a0
test al, al
je 0x140072ea0
mov rcx, rsi
call fcn.1401788a0
test al, al
jne 0x140072ea3
inc dword [rdi + 0x14]
mov edx, dword [rsp + 0x40]
mov dword [rsp + 0x50], edx
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 0x204]
mov eax, r13d
cmp ecx, r13d
cmovl eax, ecx
add eax, edx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x5c], eax
jmp 0x140072f87
mov eax, dword [rsp + 0x44]
add eax, 0xc
mov dword [rsp + 0x6c], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140072f87
mov dword [rdi + 0xc], 5
mov ecx, dword [rsi + 0x15c]
mov dword [rdi + 0x14], ecx
lea eax, [r12 + 2]
cmp ecx, eax
jbe 0x140072f53
mov r8b, 1
mov edx, 0xe81c
mov rcx, rsi
call fcn.140183bc0
mov rbx, rax
mov r8b, 1
mov edx, 0xe81d
mov rcx, rsi
call fcn.140183bc0
mov rcx, rbx
call fcn.1401788a0
test al, al
je 0x140072f53
mov rcx, rbx
call fcn.1401788a0
test al, al
jne 0x140072f56
inc dword [rdi + 0x14]
mov edx, dword [rsp + 0x44]
mov dword [rsp + 0x54], edx
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 0x200]
mov eax, r14d
cmp ecx, r14d
cmovl eax, ecx
add eax, edx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
cmp dword [rdi + 0xc], 0
jne 0x140072ffa
lea rax, [0x1401ec2c8]
add rbp, 8
cmp rbp, 0x20
jge 0x140073009
jmp 0x140072c01
mov dword [rdi + 0xc], 0xd
jmp 0x14007372d
mov r13b, byte [rsp + 0x178]
mov r14d, dword [rsp + 0x74]
jmp 0x140073016
mov r13b, byte [rsp + 0x178]
mov r14d, dword [rsp + 0x74]
jmp 0x140073016
mov r13b, byte [rsp + 0x178]
mov r14d, dword [rsp + 0x74]
jmp 0x140073016
mov r13b, byte [rsp + 0x178]
mov r14d, dword [rsp + 0x74]
jmp 0x140073016
mov r13b, byte [rsp + 0x178]
mov r14d, dword [rsp + 0x74]
jmp 0x140073016
mov r13b, byte [rsp + 0x178]
mov r14d, dword [rsp + 0x74]
jmp 0x140073016
mov r13b, byte [rsp + 0x178]
mov r14d, dword [rsp + 0x74]
cmp dword [rdi + 0xc], 0
jne 0x140073509
cmp byte [rsp + 0x170], 0
jne 0x140073509
lea rcx, [rsp + 0xa8]
call fcn.140066010
nop
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x20], rax
mov r9d, 0x857c
lea r8, [rsp + 0xa8]
xor edx, edx
mov rcx, qword [rdi + 0x28]
call fcn.14006c960
mov r11, qword [rsp + 0xb8]
cmp r11d, 1
jne 0x1400734fc
test r11, r11
jle 0x1400734f6
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rax]
mov qword [rdi + 0x30], rcx
lea rdx, [rsp + 0x50]
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov r11, qword [rdi + 0x28]
cmp qword [rdi + 0x30], r11
jne 0x1400730b1
mov dword [rdi + 0xc], 0xd
jmp 0x1400734fc
xor r15d, r15d
mov dword [rdi + 0xc], r15d
cmp byte [rsp + 0x70], r15b
jne 0x1400730d7
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 0xf8]
cmp dword [rcx + 0x15c], r15d
ja 0x1400734fc
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x1400734fc
mov rax, qword [rcx]
call qword [rax + 0x420]
mov r12d, eax
mov rcx, qword [rdi + 0x30]
mov rdx, qword [rcx]
call qword [rdx + 0x428]
mov ebp, eax
mov rcx, qword [rdi + 0x30]
call fcn.140061a90
mov r11d, eax
cmp eax, 0xe81f
jne 0x140073118
lea r11d, [rax - 4]
jmp 0x14007312a
cmp eax, 0xe81b
je 0x14007312a
cmp eax, 0xe81e
je 0x14007312a
xor bl, bl
jmp 0x14007312c
mov bl, 1
mov rax, qword [rdi + 0x30]
mov rsi, qword [rax + 0xf8]
cmp r11d, 0xe81c
jne 0x140073153
mov rax, qword [rdi + 0x28]
bt dword [rax + 0xe8], 0xc
jb 0x1400731a6
jmp 0x1400734fc
cmp r11d, 0xe81d
jne 0x14007316f
mov rax, qword [rdi + 0x28]
bt dword [rax + 0xe8], 0xe
jb 0x1400731a6
jmp 0x1400734fc
cmp r11d, 0xe81b
jne 0x14007318b
mov rax, qword [rdi + 0x28]
bt dword [rax + 0xe8], 0xd
jb 0x1400731a6
jmp 0x1400734fc
cmp r11d, 0xe81e
jne 0x1400731a6
mov rax, qword [rdi + 0x28]
bt dword [rax + 0xe8], 0xf
jae 0x1400734fc
mov rax, qword [rdi + 0x28]
test dword [rax + 0xe8], 0xf000
je 0x1400734fc
and byte [rdi + 8], 0xfd
mov rcx, qword [rdi + 0x30]
lea rdx, str.CExtDockBar
mov rcx, qword [rcx + 0xf8]
call fcn.14001b150
test eax, eax
je 0x1400731e6
mov rcx, qword [rdi + 0x30]
call fcn.140061ce0
test al, al
je 0x1400731ea
or byte [rdi + 8], 2
lea rdx, [rsp + 0x60]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
movaps xmm5, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm5
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x50]
sub eax, ecx
mov esi, dword [rsp + 0xa0]
cmp eax, esi
jl 0x14007335f
cmp r14d, 0x40
jg 0x14007335f
cmp ebp, 0x40
jg 0x14007335f
movdqa xmmword [rsp + 0x40], xmm5
mov rax, qword [rsp + 0x50]
shr rax, 0x20
add eax, 0x20
mov dword [rsp + 0x4c], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x1400732c0
test r13b, r13b
je 0x140073266
test bl, bl
jne 0x1400732c0
or byte [rdi + 8], 2
mov eax, 1
mov dword [rdi + 0xc], eax
mov eax, dword [rsp + 0x5c]
sub eax, dword [rsp + 0x54]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rsp + 0x44]
mov dword [rsp + 0x4c], eax
test bl, bl
je 0x14007348d
test byte [rdi + 8], 2
jne 0x14007348d
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x40]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x48]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x48], ecx
jmp 0x14007348d
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0x58]
shr rax, 0x20
sub eax, 0x20
mov dword [rsp + 0x44], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140073356
test r13b, r13b
je 0x1400732fb
test bl, bl
jne 0x140073356
or byte [rdi + 8], 2
mov dword [rdi + 0xc], 2
mov eax, dword [rsp + 0x5c]
sub eax, dword [rsp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov dword [rsp + 0x44], ecx
test bl, bl
je 0x14007348d
test byte [rdi + 8], 2
jne 0x14007348d
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x40]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x48]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x48], ecx
jmp 0x14007348d
mov ecx, dword [rsp + 0x50]
movaps xmm5, xmmword [rsp + 0x50]
mov eax, dword [rsp + 0x5c]
sub eax, dword [rsp + 0x54]
cmp eax, r14d
jl 0x14007348d
cmp esi, 0x40
jg 0x14007348d
cmp r12d, 0x40
jg 0x14007348d
movdqa xmmword [rsp + 0x40], xmm5
lea eax, [rcx + 0x20]
mov dword [rsp + 0x48], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140073409
test r13b, r13b
je 0x1400733b0
test bl, bl
je 0x140073409
or byte [rdi + 8], 2
mov dword [rdi + 0xc], 3
mov eax, dword [rsp + 0x58]
sub eax, dword [rsp + 0x50]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rsp + 0x40]
mov dword [rsp + 0x48], eax
test bl, bl
jne 0x14007348d
test byte [rdi + 8], 2
jne 0x14007348d
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x44]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x44], ecx
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x4c]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x4c], ecx
jmp 0x14007348d
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
mov eax, dword [rsp + 0x58]
add eax, 0xffffffe0
mov dword [rsp + 0x40], eax
mov rdx, qword [rsp + 0x168]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x14007348d
test r13b, r13b
je 0x14007343f
test bl, bl
je 0x14007348d
or byte [rdi + 8], 2
mov dword [rdi + 0xc], 4
mov eax, dword [rsp + 0x58]
sub eax, dword [rsp + 0x50]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov dword [rsp + 0x40], ecx
test bl, bl
jne 0x14007348d
test byte [rdi + 8], 2
jne 0x14007348d
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x44]
cmp eax, ecx
cmovl ecx, eax
mov dword [rsp + 0x44], ecx
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x4c]
cmp eax, ecx
cmovg ecx, eax
mov dword [rsp + 0x4c], ecx
test byte [rdi + 8], 2
je 0x1400734b6
mov rcx, qword [rdi + 0x30]
call fcn.140061ce0
test al, al
jne 0x1400734b6
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0x30]
call fcn.140063210
test al, al
je 0x1400734b6
and byte [rdi + 8], 0xfd
cmp dword [rdi + 0xc], r15d
je 0x1400734fc
test bl, bl
je 0x1400734d2
mov eax, dword [rsp + 0x48]
sub eax, dword [rsp + 0x40]
cmp eax, esi
jge 0x1400734e3
mov dword [rdi + 0xc], r15d
jmp 0x1400734e3
mov eax, dword [rsp + 0x4c]
sub eax, dword [rsp + 0x44]
cmp eax, r14d
jge 0x1400734e3
mov dword [rdi + 0xc], r15d
cmp dword [rdi + 0xc], r15d
je 0x1400734fc
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x50], xmm0
jmp 0x1400734fc
call fcn.1400093e4
nop
lea rcx, [rsp + 0xa8]
call fcn.140066030
cmp dword [rdi + 0xc], 0
jne 0x1400736f4
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400647d0
mov rcx, qword [rdi + 0x28]
call fcn.140061ce0
test al, al
je 0x140073648
mov rcx, qword [rdi + 0x28]
call fcn.140025668
mov rdx, rax
lea rcx, str.CMiniDockFrameWnd
call fcn.14001b184
lea rdx, [rsp + 0x50]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rsp + 0x50]
neg edx
mov dword [rsp + 0x160], edx
mov eax, dword [rsp + 0x54]
neg eax
mov dword [rsp + 0x164], eax
mov r8, qword [rsp + 0x160]
shr r8, 0x20
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_OffsetRect]
mov rax, qword [rdi + 0x28]
mov rax, qword [rax + 0x264]
mov edx, dword [rsp + 0x168]
sub edx, eax
mov dword [rsp + 0x160], edx
shr rax, 0x20
mov ecx, dword [rsp + 0x16c]
sub ecx, eax
mov dword [rsp + 0x164], ecx
mov r8, qword [rsp + 0x160]
shr r8, 0x20
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_OffsetRect]
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x350]
lea rdx, [rsp + 0x80]
mov ecx, dword [rax]
mov dword [rdx], ecx
mov ecx, dword [rax + 4]
mov dword [rdx + 4], ecx
mov ecx, dword [rax + 8]
mov dword [rdx + 8], ecx
mov eax, dword [rax + 0xc]
mov dword [rdx + 0xc], eax
mov rcx, qword [rsp + 0x80]
mov rax, rcx
shr rax, 0x20
mov r8, qword [rsp + 0x88]
mov r9, r8
shr r9, 0x20
sub r9d, eax
sub r8d, ecx
cmp r8d, r9d
cmovl r9d, r8d
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
neg eax
mov r8d, eax
neg r9d
mov edx, r9d
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_OffsetRect]
jmp 0x1400736d8
mov rax, qword [rdi + 0x28]
mov rax, qword [rax + 0x20c]
mov rcx, qword [rsp + 0x168]
lea r9d, [rax + rcx]
mov dword [rsp + 0x160], r9d
shr rax, 0x20
add eax, dword [rsp + 0x16c]
mov dword [rsp + 0x164], eax
mov rax, qword [rsp + 0x160]
shr rax, 0x20
mov r8, rcx
shr r8, 0x20
mov dword [rsp + 0x20], eax
mov edx, ecx
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_SetRect]
mov r11, qword [rdi + 0x28]
mov edx, dword [r11 + 0x264]
neg edx
mov dword [rsp + 0x160], edx
mov eax, dword [r11 + 0x268]
neg eax
mov dword [rsp + 0x164], eax
mov r8, qword [rsp + 0x160]
shr r8, 0x20
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_OffsetRect]
mov rax, qword [rsp + 0xf0]
mov r8, rax
shr r8, 0x20
mov edx, eax
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_OffsetRect]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xd8]
call qword [sym.imp.USER32.dll_CopyRect]
lea rdx, [rsp + 0xd8]
mov eax, dword [rdx]
mov rcx, qword [rsp + 0xd0]
mov dword [rcx], eax
mov eax, dword [rdx + 4]
mov dword [rcx + 4], eax
mov eax, dword [rdx + 8]
mov dword [rcx + 8], eax
mov eax, dword [rdx + 0xc]
mov dword [rcx + 0xc], eax
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret