Function at 0x14001b5b8
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x218]
sub rsp, 0x318
mov rax, qword [0x140050310]
xor rax, rsp
mov qword [rbp + 0x200], rax
mov r12, qword [rbp + 0x280]
mov r13, r9
mov edi, r8d
mov dword [rsp + 0x40], r8d
mov rsi, rdx
mov qword [rbp - 0x78], rdx
mov r14, rcx
xor r15d, r15d
lea eax, [rdi - 0x1000]
cmp eax, 0xff
jbe 0x14001c80d
cmp edi, 0x200
jb 0x14001b676
cmp edi, 0x20e
ja 0x14001b676
mov rdx, qword [r14 + 0x48]
lea r8, [rsp + 0x48]
movsx eax, r12w
xorps xmm0, xmm0
mov dword [rsp + 0x48], eax
mov rcx, r14
mov rax, r12
mov qword [rbp - 0x60], rsi
shr rax, 0x10
cwde
mov dword [rsp + 0x4c], eax
mov dword [rbp - 0x58], edi
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], r12
movups xmmword [rbp - 0x40], xmm0
call fcn.14001b378
mov rcx, qword [r14 + 0x48]
lea r9, [rbp - 0x60]
xor r8d, r8d
mov edx, 0x407
call qword [sym.imp.USER32.dll_SendMessageW]
cmp edi, 0x201
je 0x14001c70a
cmp edi, 0x200
je 0x14001c670
cmp edi, 0x202
je 0x14001c632
cmp edi, 0x102
ja 0x14001c2c4
je 0x14001c212
cmp edi, 0x14
jbe 0x14001c0b5
mov eax, edi
sub eax, 0x20
je 0x14001c0a7
sub eax, 0x10
je 0x14001bf5a
sub eax, 0x1e
je 0x14001ba4e
sub eax, 0x34
je 0x14001b9fe
sub eax, 5
je 0x14001b9e4
cmp eax, 0x79
jne 0x14001c7fa
mov al, byte [r14 + 0x118]
mov edx, 0xfffffff4
neg al
mov qword [rbp - 0x60], rsi
sbb ecx, ecx
and ecx, 0xfffff78e
add ecx, 0x7d7
mov dword [rbp - 0x50], ecx
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rcx, rsi
mov word [rbp - 0x48], r13w
mov qword [rbp - 0x58], rax
mov dword [rbp - 0x46], r15d
call qword [sym.imp.USER32.dll_GetParent]
mov r8, qword [rbp - 0x58]
lea r9, [rbp - 0x60]
mov rcx, rax
mov edx, 0x4e
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, r13
sub rax, 0x21
je 0x14001b92f
sub rax, 1
je 0x14001b92f
sub rax, 1
je 0x14001b901
sub rax, 1
je 0x14001b8e5
sub rax, 1
je 0x14001b786
sub rax, 1
je 0x14001b84c
sub rax, 1
jne 0x14001b7d7
mov rbx, qword [r14 + 0xc8]
test rbx, rbx
je 0x14001c7fa
mov rcx, rbx
cmp r13, 0x27
jne 0x14001b897
call fcn.1400183ac
test al, al
je 0x14001c7fa
mov rcx, rbx
call fcn.1400193b4
test al, al
je 0x14001b884
mov edi, pe_nt_image_headers64
mov r12, r15
mov dword [rsp + 0x40], edi
mov r13d, 0x28
jmp 0x14001b604
sub rax, 1
je 0x14001b84c
cmp rax, 0x43
jne 0x14001c7fa
lea ecx, [rax + 0x5f]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je 0x14001c7fa
mov rcx, r14
mov ebx, r15d
call fcn.14001666c
test eax, eax
jle 0x14001bf4d
test ebx, ebx
jne 0x14001b822
cmp byte [r14 + 0xec], r15b
je 0x14001b822
mov eax, dword [r14 + 0xe8]
jmp 0x14001b82c
mov edx, ebx
mov rcx, r14
call fcn.140017ae4
mov r8d, eax
mov edx, ebx
mov rcx, r14
call fcn.14001ab14
mov rcx, r14
inc ebx
call fcn.14001666c
cmp ebx, eax
jl 0x14001b80c
jmp 0x14001bf4d
mov rcx, qword [r14 + 0xc8]
test rcx, rcx
je 0x14001c7fa
cmp r13, 0x28
jne 0x14001b869
call fcn.140019d30
jmp 0x14001b86e
call fcn.14001a0f4
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14001c7fa
mov rdx, rax
jmp 0x14001b9be
mov r8b, 1
mov rdx, rbx
mov rcx, r14
call fcn.14001790c
jmp 0x14001c7fa
call fcn.1400193b4
test al, al
je 0x14001b8b1
mov rcx, rbx
call fcn.1400183ac
test al, al
je 0x14001b8b1
xor r8d, r8d
jmp 0x14001b887
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x78], rcx
test rcx, rcx
je 0x14001c7fa
lea rax, [r14 + 0x70]
cmp rcx, rax
je 0x14001c7fa
mov rdx, rbx
mov rcx, r14
call fcn.140017a90
mov rdx, qword [rsp + 0x78]
jmp 0x14001b9cb
xor edx, edx
mov rcx, r14
call fcn.140017a78
mov rdx, rax
mov rcx, r14
call fcn.14001aa84
xor edx, edx
jmp 0x14001b9d7
mov rcx, r14
call fcn.140017fe8
mov rcx, r14
lea edx, [rax - 1]
call fcn.140017a78
mov rdx, rax
mov rcx, r14
call fcn.14001aa84
mov rcx, r14
call fcn.140017fe8
lea edx, [rax - 1]
jmp 0x14001b9d7
mov rbx, qword [r14 + 0xc8]
mov qword [rsp + 0x48], rbx
test rbx, rbx
je 0x14001c7fa
mov rcx, qword [r14 + 0x28]
lea r8, [rsp + 0x58]
xor eax, eax
mov dword [rsp + 0x58], 0x1c
xorps xmm0, xmm0
mov dword [rsp + 0x70], eax
movups xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x5c], 2
lea edx, [rax + 2]
call qword [sym.imp.USER32.dll_GetScrollInfo]
mov dword [rsp + 0x40], r15d
cmp dword [rsp + 0x68], r15d
jbe 0x14001b9bb
mov rcx, rbx
cmp r13, 0x22
jne 0x14001b990
call fcn.140019d30
jmp 0x14001b995
call fcn.14001a0f4
test rax, rax
je 0x14001b9ad
mov rbx, rax
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp eax, dword [rsp + 0x68]
jb 0x14001b980
mov qword [rsp + 0x48], rbx
test rbx, rbx
je 0x14001c7fa
mov rdx, rbx
mov rcx, r14
call fcn.140017a90
mov rdx, qword [rsp + 0x48]
mov rcx, r14
mov ebx, eax
call fcn.14001aa84
mov edx, ebx
mov rcx, r14
call fcn.14001786c
jmp 0x14001c7fa
mov r9, r12
mov r8, r13
mov edx, edi
mov rcx, rsi
call qword [sym.imp.USER32.dll_DefWindowProcW]
or rax, 1
jmp 0x14001c823
mov rcx, qword [r14 + 0x60]
test rcx, rcx
je 0x14001ba13
cmp byte [r14 + 0x68], r15b
jne 0x14001ba13
call qword [sym.imp.COMCTL32.dll_ImageList_Destroy]
movzx edx, word [0x1400519f8]
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetPropW]
mov rcx, qword [r14 + 0x130]
call qword [sym.imp.GDI32.dll_DeleteObject]
lea rcx, [r14 + 0x70]
call fcn.1400165c8
mov edx, 0x140
mov rcx, r14
call fcn.14001d3ac
jmp 0x14001c7fa
mov rax, qword [r14 + 0x48]
cmp qword [r12], rax
jne 0x14001bd05
cmp dword [r12 + 0x10], 0xfffffdee
je 0x14001bb4f
cmp dword [r12 + 0x10], 0xfffffdf7
jne 0x14001bd05
mov r8d, dword [r14 + 0xf4]
lea rax, [rsp + 0x78]
mov edx, dword [r14 + 0xf8]
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov rcx, r14
mov rax, qword [r14 + 0x100]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
call fcn.140017c5c
mov rcx, qword [r14 + 0x48]
lea r9, [rsp + 0x78]
mov edx, 0x41f
mov r8d, 1
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [r14]
lea r8, [rsp + 0x78]
mov r9d, 2
xor edx, edx
call qword [sym.imp.USER32.dll_MapWindowPoints]
mov r9d, dword [rsp + 0x7c]
xor edx, edx
mov r8d, dword [rsp + 0x78]
mov rcx, qword [r14 + 0x48]
mov dword [rsp + 0x30], 0x15
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r8, qword [r14 + 0x50]
xor r9d, r9d
mov rcx, qword [r14 + 0x48]
lea edx, [r9 + 0x30]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [r14 + 0x100]
mov r8d, 0x7d5
mov r9d, dword [r14 + 0xf4]
mov rcx, r14
mov rdx, qword [r14 + 0x48]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.140016ab0
jmp 0x14001c529
cmp qword [r14 + 0x100], r15
je 0x14001bcf9
cmp dword [r14 + 0xf4], r15d
jl 0x14001bcf9
lea rax, [r12 + 0x18]
mov r8d, 0x7d4
mov qword [rsp + 0x30], rax
lea rbx, [r12 + 0x20]
mov qword [rax], rbx
mov rcx, r14
mov rax, qword [r14 + 0x100]
mov r9d, dword [r14 + 0xf4]
mov rdx, qword [r14]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.140016ab0
test rax, rax
jne 0x14001c5f4
mov rdx, qword [r14 + 0x100]
mov r9, rbx
mov r8d, dword [r14 + 0xf4]
mov dword [rsp + 0x20], 0x50
mov rcx, qword [rdx + 8]
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
mov ecx, 0x4e
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x78], rax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov rcx, r14
mov dword [rsp + 0x50], eax
call fcn.1400194ac
mov rcx, qword [r14 + 0x100]
mov r9b, 1
mov r8d, dword [r14 + 0xf4]
mov edx, dword [r14 + 0xf8]
mov dword [rsp + 0x54], eax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov rcx, r14
mov byte [rsp + 0x20], 1
call fcn.140017c5c
mov rcx, qword [r14 + 0x38]
lea r8, [rbp - 0x60]
xor eax, eax
mov dword [rbp - 0x60], 0x1c
xorps xmm0, xmm0
mov dword [rbp - 0x48], eax
movups xmmword [rbp - 0x58], xmm0
mov dword [rbp - 0x5c], 4
lea edx, [rax + 2]
call qword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [r14 + 0xe0]
cmp dword [rsp + 0x58], eax
jne 0x14001bc6b
cmp dword [rbp - 0x4c], r15d
jne 0x14001c5f4
mov edi, dword [r14 + 0xf0]
mov rcx, qword [r14]
and edi, 0xfffb3fff
bts edi, 0xa
call qword [sym.imp.USER32.dll_GetDC]
mov rdx, qword [r14 + 0x50]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rsp + 0x78]
lea r9, [rsp + 0x48]
or r8d, 0xffffffff
mov dword [rsp + 0x20], edi
mov rcx, rsi
mov rbx, rax
call qword [sym.imp.USER32.dll_DrawTextW]
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [r14]
mov rdx, rsi
call qword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [rsp + 0x60]
lea rdx, [0x1400379e0]
mov eax, dword [rsp + 0x50]
sub ecx, dword [rsp + 0x58]
sub eax, dword [rsp + 0x48]
cmp eax, ecx
cmovg rdx, qword [rsp + 0x78]
mov qword [r12 + 0x18], rdx
mov edi, dword [rsp + 0x40]
mov rsi, qword [rbp - 0x78]
jmp 0x14001bd05
lea rdx, [0x1400379e0]
mov qword [r12 + 0x18], rdx
mov rcx, qword [r12]
cmp rcx, qword [r14 + 8]
je 0x14001bd19
cmp rcx, qword [r14 + 0x18]
jne 0x14001c7fa
mov eax, dword [r12 + 0x10]
cmp eax, 0xfffffebb
je 0x14001beff
cmp eax, 0xfffffebe
je 0x14001bed2
cmp eax, 0xfffffebf
je 0x14001bf4d
cmp eax, 0xfffffec0
je 0x14001bd87
cmp eax, 0xfffffec9
je 0x14001bd74
cmp eax, 0xfffffffb
jne 0x14001c7fa
mov qword [rsp + 0x30], r15
xor r9d, r9d
mov qword [rsp + 0x28], r15
mov rdx, rcx
mov qword [rsp + 0x20], r15
lea r8d, [r9 - 5]
jmp 0x14001c3fe
mov rcx, qword [r14]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x14001c5f4
mov rdx, qword [r12 + 0x20]
test byte [rdx], 1
je 0x14001c7fa
cmp dword [r12 + 0x18], r15d
jne 0x14001bdac
mov eax, dword [r14 + 0xe4]
cmp dword [rdx + 4], eax
jl 0x14001c529
cmp rcx, qword [r14 + 0x18]
lea r8, [rbp - 0x78]
mov ebx, r15d
mov rcx, r14
sete bl
add ebx, dword [r12 + 0x18]
mov edx, ebx
call fcn.140017e08
mov rcx, qword [r14]
lea rdx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rax, qword [r12 + 0x20]
mov ecx, dword [rbp - 0x70]
mov edi, dword [rax + 4]
sub edi, ecx
add edi, dword [rbp - 0x78]
je 0x14001c5f4
mov eax, dword [rbp - 0x6c]
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x60]
mov dword [rbp - 0x80], eax
mov eax, dword [rsp + 0x64]
mov dword [rbp - 0x7c], eax
mov dword [rsp + 0x78], ecx
test ebx, ebx
jne 0x14001be11
lea eax, [rcx - 1]
mov dword [rsp + 0x78], eax
mov rdx, qword [r14 + 0x28]
mov rcx, r14
call fcn.14001944c
test al, al
je 0x14001be2f
mov ecx, 2
call qword [sym.imp.USER32.dll_GetSystemMetrics]
sub dword [rbp - 0x80], eax
mov rcx, qword [r14]
lea r9, [rsp + 0x78]
mov dword [rsp + 0x38], 2
xor r8d, r8d
mov qword [rsp + 0x30], r15
mov edx, edi
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
call qword [sym.imp.USER32.dll_ScrollWindowEx]
mov eax, dword [rbp - 0x78]
lea rdx, [rsp + 0x48]
mov rcx, qword [r14]
xor r8d, r8d
mov dword [rsp + 0x48], eax
mov eax, dword [rbp - 0x6c]
mov dword [rsp + 0x4c], eax
mov eax, dword [rbp - 0x70]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x54], eax
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, r14
test ebx, ebx
jne 0x14001bebe
mov edx, dword [rbp - 0x70]
add edx, edi
call fcn.14001a48c
mov rcx, r14
call fcn.14001a63c
mov rcx, r14
call fcn.14001a748
mov rcx, qword [r14 + 0x18]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [r14 + 0x30]
call qword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x14001bec3
call fcn.14001a63c
mov rcx, qword [r14 + 0x38]
call qword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x14001c5f4
cmp rcx, qword [r14 + 8]
jne 0x14001bedd
mov r9d, r15d
jmp 0x14001bee5
mov r9d, dword [r12 + 0x18]
inc r9d
mov qword [rsp + 0x30], r15
mov r8d, 0x7d3
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
jmp 0x14001c3fb
cmp rcx, qword [r14 + 0x18]
mov ebx, r15d
sete bl
add ebx, dword [r12 + 0x18]
jne 0x14001bf22
cmp byte [r14 + 0xec], r15b
je 0x14001bf22
mov eax, dword [r14 + 0xe8]
jmp 0x14001bf2c
mov edx, ebx
mov rcx, r14
call fcn.140017ae4
mov r8d, eax
mov dword [rsp + 0x40], eax
mov edx, ebx
mov rcx, r14
call fcn.14001ab14
test ebx, ebx
jne 0x14001bf4d
mov edx, dword [rsp + 0x40]
mov rcx, r14
call fcn.14001a48c
mov rcx, r14
call fcn.14001a63c
jmp 0x14001c7fa
mov rcx, qword [r14 + 8]
mov rbx, r15
test r12w, r12w
mov qword [r14 + 0x50], r13
mov edi, 0x30
mov r8, r13
setne bl
mov edx, edi
mov r9, rbx
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, qword [r14 + 0x50]
mov r9, rbx
mov rcx, qword [r14 + 0x18]
mov edx, edi
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, qword [r14 + 0x50]
mov r9, rbx
mov rcx, qword [r14 + 0x48]
mov edx, edi
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, qword [r14 + 0x50]
mov r9, rbx
mov rcx, qword [r14 + 0x10]
mov edx, edi
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, qword [r14 + 0x50]
mov r9, rbx
mov rcx, qword [r14 + 0x20]
mov edx, edi
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [r14]
lea rdx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [r14 + 8]
lea r9, [rsp + 0x58]
xor eax, eax
xorps xmm0, xmm0
mov qword [rbp - 0x40], rax
xor r8d, r8d
lea rax, [rsp + 0x78]
mov edx, 0x1205
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x60], rax
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [rbp - 0x40]
xor r9d, r9d
mov rdx, qword [rbp - 0x58]
or eax, 0x40
mov rcx, qword [r14 + 8]
xor r8d, r8d
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 0x44]
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0xe0]
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [rbp - 0x48]
xor r9d, r9d
mov eax, dword [rbp - 0x40]
mov r8d, dword [r14 + 0xe0]
or eax, 0x40
mov rdx, qword [r14 + 8]
sub ecx, r8d
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 0x44]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, qword [r14 + 0x18]
call qword [sym.imp.USER32.dll_SetWindowPos]
cmp byte [r14 + 0xec], r15b
je 0x14001c090
mov rcx, r14
call fcn.14001ab74
mov rcx, r14
call fcn.14001a748
test r12w, r12w
je 0x14001c5f4
mov rcx, r14
call fcn.14001a150
jmp 0x14001c5f4
cmp r13, rsi
je 0x14001c529
jmp 0x14001c7fa
je 0x14001c529
mov eax, edi
sub eax, 2
je 0x14001c1fe
sub eax, 3
je 0x14001c1a4
sub eax, 2
je 0x14001c187
sub eax, 1
je 0x14001c187
sub eax, 3
je 0x14001c14d
cmp eax, 4
jne 0x14001c7fa
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateRectRgn]
xor r8d, r8d
mov rcx, rsi
mov rdx, rax
mov rbx, rax
call qword [sym.imp.USER32.dll_GetUpdateRgn]
cmp eax, 1
je 0x14001c13f
lea rdx, [rbp - 0x60]
mov rcx, rsi
call qword [sym.imp.USER32.dll_BeginPaint]
mov r8, rbx
lea rdx, [rbp - 0x60]
mov rcx, r14
call fcn.140016b64
lea rdx, [rbp - 0x60]
mov rcx, rsi
call qword [sym.imp.USER32.dll_EndPaint]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x14001c5f4
test r13, r13
mov r9, r12
mov r8, r13
mov edx, edi
setne al
mov rcx, rsi
mov byte [r14 + 0x138], al
call qword [sym.imp.USER32.dll_DefWindowProcW]
test r13, r13
je 0x14001c823
mov rcx, r14
mov rbx, rax
call fcn.14001a150
mov rax, rbx
jmp 0x14001c823
mov rdx, qword [r14 + 0xc8]
test rdx, rdx
je 0x14001c7fa
mov rcx, r14
call fcn.14001a1b4
jmp 0x14001c7fa
mov rcx, r14
call fcn.14001a63c
mov rcx, r14
call fcn.14001a748
mov rcx, r14
call fcn.14001a354
xor edx, edx
mov dword [rbp - 0x60], 0x48
lea rcx, [rbp - 0x5c]
lea r8d, [rdx + 0x44]
call fcn.14001ea40
mov rcx, qword [r14]
lea rdx, [rbp - 0x48]
mov qword [rbp - 0x58], rcx
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [r14 + 0x48]
lea r9, [rbp - 0x60]
xor r8d, r8d
mov edx, 0x434
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x14001c7fa
mov rcx, r14
mov byte [r14 + 0x138], r15b
call fcn.140016808
jmp 0x14001c7fa
cmp dword [r14 + 0xa8], r15d
je 0x14001c7fa
mov rcx, qword [r14 + 0xc8]
test rcx, rcx
je 0x14001c23d
call fcn.140019d30
mov qword [rsp + 0x48], rax
mov rbx, rax
test rax, rax
jne 0x14001c249
mov rbx, qword [r14 + 0x98]
mov qword [rsp + 0x48], rbx
movzx ecx, r13w
call fcn.14002879c
mov word [rsp + 0x40], ax
mov rcx, qword [rbx + 8]
lea r9, [rbp - 0x10]
xor r8d, r8d
mov dword [rsp + 0x20], 0x104
mov rdx, rbx
mov r10, qword [rcx]
call qword [r10 + InitCommonControls]
movzx ecx, word [rax]
call fcn.14002879c
cmp ax, word [rsp + 0x40]
je 0x14001c2a7
mov rcx, rbx
call fcn.140019d30
mov rbx, rax
test rax, rax
jne 0x14001c29a
mov rbx, qword [r14 + 0x98]
cmp rbx, qword [rsp + 0x48]
je 0x14001c7fa
jmp 0x14001c257
mov rdx, rbx
mov rcx, r14
call fcn.14001aa84
mov rdx, rbx
mov rcx, r14
call fcn.140017a90
mov edx, eax
jmp 0x14001b9d7
mov eax, 0x31a
cmp edi, eax
ja 0x14001c596
je 0x14001c589
mov eax, edi
sub eax, 0x114
je 0x14001c4bd
sub eax, 1
je 0x14001c40b
sub eax, 0xec
je 0x14001c75d
sub eax, 2
je 0x14001c37b
sub eax, 1
je 0x14001c37b
cmp eax, 6
jne 0x14001c7fa
mov rax, r13
shr rax, 0x10
movsx ecx, ax
add ecx, dword [r14 + 0xdc]
mov dword [r14 + 0xdc], ecx
call fcn.1400287a4
cmp eax, 0x28
jl 0x14001c7fa
mov r8d, dword [r14 + 0xdc]
mov eax, 0x66666667
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
lea ecx, [rdx + rdx*4]
shl ecx, 3
sub eax, ecx
mov rcx, r14
mov dword [r14 + 0xdc], eax
mov eax, 0x99999999
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
call fcn.14001b408
jmp 0x14001c7fa
movsx eax, r12w
lea r9, [rsp + 0x40]
mov dword [rbp - 0x78], eax
lea r8, [rsp + 0x48]
mov rax, r12
mov dword [rsp + 0x48], r15d
shr rax, 0x10
mov rcx, r14
cwde
mov dword [rbp - 0x74], eax
lea rax, [rsp + 0x78]
mov rdx, qword [rbp - 0x78]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], r15d
mov qword [rsp + 0x78], r15
call fcn.1400186f8
test al, 0xe0
je 0x14001c7fa
mov rbx, qword [rsp + 0x78]
mov rcx, r14
mov rdx, rbx
call fcn.14001aa84
mov r9d, dword [rsp + 0x40]
mov eax, 0xfffffffd
mov qword [rsp + 0x30], r15
cmp edi, 0x203
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
lea r8d, [rax - 2]
cmove r8d, eax
mov rdx, qword [r14]
mov rcx, r14
call fcn.140016ab0
jmp 0x14001c7fa
mov rcx, qword [r14 + 0x28]
lea r8, [rsp + 0x58]
xor eax, eax
mov dword [rsp + 0x58], 0x1c
xorps xmm0, xmm0
mov dword [rsp + 0x70], eax
movups xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x5c], 7
lea edx, [rax + 2]
call qword [sym.imp.USER32.dll_GetScrollInfo]
movzx ecx, r13w
test ecx, ecx
je 0x14001c4a0
sub ecx, 1
je 0x14001c496
sub ecx, 1
je 0x14001c48a
sub ecx, 1
je 0x14001c47e
sub ecx, 1
je 0x14001c471
sub ecx, 1
je 0x14001c471
sub ecx, 1
je 0x14001c4a8
sub ecx, 1
jne 0x14001c520
mov r15d, dword [rsp + 0x64]
jmp 0x14001c4a8
mov rax, r13
shr rax, 0x10
movzx r15d, ax
jmp 0x14001c4a8
mov r15d, dword [rsp + 0x6c]
add r15d, dword [rsp + 0x68]
jmp 0x14001c4a8
mov r15d, dword [rsp + 0x6c]
sub r15d, dword [rsp + 0x68]
jmp 0x14001c4a8
mov r15d, dword [rsp + 0x6c]
inc r15d
jmp 0x14001c4a8
mov r15d, dword [rsp + 0x6c]
dec r15d
mov edx, r15d
mov dword [rsp + 0x6c], r15d
mov rcx, r14
call fcn.14001b548
jmp 0x14001c7fa
test r12, r12
je 0x14001c7fa
xor eax, eax
mov dword [rsp + 0x58], 0x1c
xorps xmm0, xmm0
mov dword [rsp + 0x70], eax
lea r8, [rsp + 0x58]
mov dword [rsp + 0x5c], 7
mov rcx, r12
lea edx, [rax + 2]
movups xmmword [rsp + 0x60], xmm0
call qword [sym.imp.USER32.dll_GetScrollInfo]
movzx ecx, r13w
test ecx, ecx
je 0x14001c569
sub ecx, 1
je 0x14001c55f
sub ecx, 1
je 0x14001c553
sub ecx, 1
je 0x14001c547
sub ecx, 1
je 0x14001c53a
sub ecx, 1
je 0x14001c53a
sub ecx, 1
je 0x14001c571
sub ecx, 1
je 0x14001c533
cmp ecx, 1
jne 0x14001c5f4
mov eax, 1
jmp 0x14001c823
mov r15d, dword [rsp + 0x64]
jmp 0x14001c571
mov rax, r13
shr rax, 0x10
movzx r15d, ax
jmp 0x14001c571
mov r15d, dword [rsp + 0x6c]
add r15d, dword [rsp + 0x68]
jmp 0x14001c571
mov r15d, dword [rsp + 0x6c]
sub r15d, dword [rsp + 0x68]
jmp 0x14001c571
mov r15d, dword [rsp + 0x6c]
inc r15d
jmp 0x14001c571
mov r15d, dword [rsp + 0x6c]
dec r15d
mov r8d, r15d
mov dword [rsp + 0x6c], r15d
mov rdx, r12
mov rcx, r14
call fcn.140018bd8
jmp 0x14001c7fa
mov rcx, r14
call fcn.14001a298
jmp 0x14001c7fa
mov eax, edi
sub eax, 0x2000
je 0x14001c61e
sub eax, 1
je 0x14001c604
sub eax, 1
je 0x14001c5fb
sub eax, 1
je 0x14001c5e9
sub eax, 1
je 0x14001c5ce
cmp eax, 1
jne 0x14001c7fa
mov rdx, r13
mov rcx, r14
call fcn.140017a90
cdqe
jmp 0x14001c823
mov r9, qword [r12 + 0x10]
mov rcx, r14
mov r8, qword [r12 + 8]
mov rdx, qword [r12]
call fcn.140019cbc
jmp 0x14001c823
mov rdx, r13
mov rcx, r14
call fcn.14001a1b4
xor eax, eax
jmp 0x14001c823
mov eax, dword [r13 + 0x38]
jmp 0x14001c823
test r12, r12
mov rdx, r13
mov rcx, r14
setne r8b
call fcn.14001790c
movzx eax, al
jmp 0x14001c823
test r12, r12
mov rdx, r13
mov rcx, r14
setne r8b
call fcn.14001ab54
jmp 0x14001c5f4
cmp byte [r14 + 0x110], r15b
je 0x14001c7fa
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rsi
jne 0x14001c7fa
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov rcx, qword [r14]
mov edx, 0xfffffff4
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
jmp 0x14001c7fa
cmp byte [r14 + 0x110], r15b
je 0x14001c7fa
movsx ebx, r12w
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rsi
jne 0x14001c6ea
test r13b, 1
je 0x14001c6ea
mov r9d, dword [r14 + 0x114]
sub ebx, r9d
je 0x14001c701
mov r8d, dword [r14 + 0xe0]
mov ecx, dword [r14 + 0xe4]
mov edx, ecx
sub edx, r8d
lea eax, [r8 + rbx]
cmp eax, ecx
mov rcx, r14
cmovge edx, ebx
lea eax, [r9 + rdx]
lea ebx, [r8 + rdx]
mov dword [r14 + 0x114], eax
mov edx, ebx
call fcn.14001a48c
mov r8d, ebx
xor edx, edx
mov rcx, r14
call fcn.14001ab14
mov rcx, r14
call fcn.14001a63c
jmp 0x14001c701
sub ebx, dword [r14 + 0xe0]
mov ecx, ebx
call fcn.1400287a4
cmp eax, 8
jg 0x14001c654
mov rcx, qword [r14 + 0x58]
jmp 0x14001c665
cmp byte [r14 + 0x110], r15b
je 0x14001c75d
movsx ebx, r12w
mov ecx, ebx
sub ecx, dword [r14 + 0xe0]
call fcn.1400287a4
cmp eax, 8
jg 0x14001c746
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetCapture]
mov rcx, qword [r14 + 0x58]
call qword [sym.imp.USER32.dll_SetCursor]
mov dword [r14 + 0x114], ebx
jmp 0x14001c75d
mov rcx, qword [r14]
mov edx, 0xfffffff4
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetFocus]
movsx eax, r12w
lea r8, [rsp + 0x48]
mov dword [rsp + 0x78], eax
xor r9d, r9d
mov rax, r12
mov dword [rsp + 0x48], r15d
shr rax, 0x10
mov rcx, r14
cwde
mov dword [rsp + 0x7c], eax
lea rax, [rbp - 0x78]
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov qword [rbp - 0x78], r15
call fcn.1400186f8
mov rbx, qword [rbp - 0x78]
mov dword [rsp + 0x48], eax
test al, 0xe0
je 0x14001c7d2
mov rdx, qword [r14]
xor r9d, r9d
mov qword [rsp + 0x30], r15
mov rcx, r14
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
lea r8d, [r9 - 2]
call fcn.140016ab0
mov eax, dword [rsp + 0x48]
test al, 0x40
je 0x14001c7e8
mov rcx, rbx
call fcn.1400193b4
xor al, 1
mov r8b, al
jmp 0x14001b887
test eax, 0x1e0
je 0x14001c7fa
mov rdx, rbx
mov rcx, r14
call fcn.14001aa84
mov r9, r12
mov r8, r13
mov edx, edi
mov rcx, rsi
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x14001c823
mov r9, r13
mov qword [rsp + 0x20], r12
mov r8d, edi
mov rdx, rsi
mov rcx, r14
call fcn.140019564
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.14001d350
add rsp, 0x318
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret