Function at 0x140036ab0
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 - 0x248]
sub rsp, 0x348
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x1401222f0]
xor rax, rsp
mov qword [rbp + 0x230], rax
mov r14, r9
mov qword [rsp + 0x78], r9
mov r13d, r8d
mov rsi, rdx
mov rbx, rcx
xor r15d, r15d
mov r12, qword [rbp + 0x2b0]
lea rdi, [0x140000000]
mov qword [rsp + 0x58], rsi
lea eax, [r13 - 0x1000]
cmp eax, 0xff
jbe 0x140037fac
cmp r13d, 0x200
jb 0x140036b83
cmp r13d, 0x20d
ja 0x140036b83
movsx eax, r12w
mov dword [rbp], eax
mov rax, r12
shr rax, 0x10
cwde
mov dword [rbp + 4], eax
mov qword [rbp - 0x50], rsi
mov dword [rbp - 0x48], r13d
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r12
xor eax, eax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
lea r8, [rbp]
mov rdx, qword [rbx + 0x58]
mov rcx, rbx
call fcn.140036820
lea r9, [rbp - 0x50]
xor r8d, r8d
mov edx, 0x407
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp r13d, 0x201
jne 0x140036bd7
cmp byte [rbx + 0x130], r15b
je 0x140036ce5
movsx edi, r12w
mov eax, edi
sub eax, dword [rbx + 0xf8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jle 0x140036dc3
mov edx, 0xfffffff4
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
lea rdi, [0x140000000]
jmp 0x140036ce5
cmp r13d, 0x200
jne 0x140036caa
cmp byte [rbx + 0x130], r15b
je 0x140036ce5
movsx edi, r12w
mov dword [rsp + 0x48], edi
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rsi
jne 0x140036c0e
test r14b, 1
jne 0x140036de1
mov eax, edi
sub eax, dword [rbx + 0xf8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jle 0x140036e42
mov edx, 0xfffffff4
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rdi, rax
cmp qword [rbx + 0x160], r15
je 0x140036c98
mov dword [rbp - 0x78], r15d
mov dword [rsp + 0x40], r15d
mov qword [rbp - 0x68], r15
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x10], eax
mov rcx, r12
shr rcx, 0x10
movsx ecx, cx
mov dword [rbp + 0x14], ecx
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x78]
mov rdx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.140033650
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x140036c98
mov edx, dword [rsp + 0x40]
call qword [rbx + 0x160]
test rax, rax
cmovne rdi, rax
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetCursor]
lea rdi, [0x140000000]
jmp 0x140036ce5
cmp r13d, 0x202
jne 0x140036ce5
cmp byte [rbx + 0x130], r15b
je 0x140036ce5
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rsi
jne 0x140036ce5
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, 0xfffffff4
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
cmp r13d, 0x100
ja 0x14003791e
jne 0x1400370b8
mov eax, 0x7d7
cmp byte [rbx + 0x138], r15b
mov ecx, 0xffffff65
cmovne eax, ecx
mov dword [rbp - 0x40], eax
mov qword [rbp - 0x50], rsi
mov edx, 0xfffffff4
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov qword [rbp - 0x48], rax
mov word [rbp - 0x38], r14w
mov dword [rbp - 0x36], r15d
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
lea r9, [rbp - 0x50]
mov r8, qword [rbp - 0x48]
mov edx, 0x4e
call qword [sym.imp.USER32.dll_SendMessageW]
lea rax, [r14 - 0x21]
cmp rax, 0x4a
ja case.default.0x140037ef9
movzx eax, byte [rdi + rax + 0x37ffc]
mov ecx, dword [rdi + rax*4 + 0x37fe8]
add rcx, rdi
jmp rcx
mov rdi, qword [rbx + 0xe0]
mov qword [rsp + 0x78], rdi
test rdi, rdi
je case.default.0x140037ef9
mov ecx, dword [rdi + 0x3c]
mov eax, ecx
cmp r14, 0x27
jne 0x140036efc
shr eax, 6
test al, 1
je case.default.0x140037ef9
shr ecx, 4
test cl, 1
je 0x140036e51
mov r12, r15
mov r14d, 0x28
mov qword [rsp + 0x78], r14
mov r13d, 0x100
jmp 0x140036b01
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetCapture]
mov rcx, qword [rbx + 0x68]
call qword [sym.imp.USER32.dll_SetCursor]
mov dword [rbx + 0x134], edi
jmp 0x140037dc3
mov r8d, dword [rbx + 0x134]
sub edi, r8d
je 0x140036e42
mov ecx, dword [rbx + 0xf8]
mov edx, dword [rbx + 0xfc]
lea eax, [rcx + rdi]
cmp eax, edx
jge 0x140036e04
mov edi, edx
sub edi, ecx
lea eax, [r8 + rdi]
mov dword [rbx + 0x134], eax
add edi, ecx
mov edx, edi
mov rcx, rbx
call fcn.1400359f0
mov dword [rbp - 0x50], 1
mov dword [rbp - 0x4c], edi
lea r9, [rbp - 0x50]
xor r8d, r8d
mov edx, 0x120c
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rbx
call fcn.140035bd0
mov rcx, qword [rbx + 0x68]
call qword [sym.imp.USER32.dll_SetCursor]
jmp 0x140037d2d
mov eax, dword [rdi + 0x3c]
shr eax, 4
test al, 1
jne case.default.0x140037ef9
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov r8d, 0x7d1
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
call fcn.140031490
test rax, rax
jne case.default.0x140037ef9
mov eax, dword [rdi + 0x3c]
or eax, 0x30
mov dword [rdi + 0x3c], eax
shr eax, 4
test al, 1
je case.default.0x140037ef9
mov r15d, dword [rdi + 0x38]
mov rdi, qword [rdi + 0x28]
test rdi, rdi
je 0x140036ec4
nop dword [rax]
mov rcx, rdi
call fcn.1400331c0
add r15d, eax
mov rdi, qword [rdi + 0x20]
test rdi, rdi
jne 0x140036eb0
test r15d, r15d
je case.default.0x140037ef9
mov rdx, qword [rsp + 0x78]
mov rcx, rbx
call fcn.1400326b0
mov edi, eax
mov r8d, eax
mov edx, eax
mov rcx, rbx
call fcn.140035720
lea edx, [rdi + 1]
mov r8d, r15d
mov rcx, rbx
call fcn.140034390
jmp case.default.0x140037ef9
shr eax, 4
test al, 1
je 0x140036f1e
shr ecx, 6
test cl, 1
je 0x140036f1e
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.140032530
jmp case.default.0x140037ef9
mov r15, qword [rdi + 0x10]
test r15, r15
je case.default.0x140037ef9
lea rax, [rbx + 0x80]
cmp r15, rax
je case.default.0x140037ef9
mov rdx, rdi
mov rcx, rbx
call fcn.1400326b0
mov rdx, r15
mov edi, eax
mov rcx, rbx
call fcn.140035de0
mov edx, edi
mov rcx, rbx
call fcn.140032480
jmp case.default.0x140037ef9
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je case.default.0x140037ef9
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1200
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.USER32.dll_SendMessageW]
inc eax
test eax, eax
jle 0x140036fdf
test r15d, r15d
jne 0x140036fa7
cmp byte [rbx + 0x104], r15b
je 0x140036fa7
mov eax, dword [rbx + 0x100]
jmp 0x140036fb2
mov edx, r15d
mov rcx, rbx
call fcn.140032730
mov r8d, eax
mov edx, r15d
mov rcx, rbx
call fcn.140035ea0
inc r15d
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1200
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.USER32.dll_SendMessageW]
inc eax
cmp r15d, eax
jl 0x140036f91
mov rcx, rbx
call fcn.140035bd0
jmp case.default.0x140037ef9
mov rcx, qword [rbx + 0xe0]
test rcx, rcx
je case.default.0x140037ef9
cmp r14, 0x28
jne 0x140037009
call fcn.1400351f0
jmp 0x14003700e
call fcn.1400355f0
mov r15, rax
test rax, rax
je case.default.0x140037ef9
mov rdx, rax
jmp 0x140036f3e
mov rdi, qword [rbx + 0xe0]
mov qword [rbp - 0x78], rdi
test rdi, rdi
je case.default.0x140037ef9
mov dword [rsp + 0x58], 0x1c
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x5c], 2
lea r8, [rsp + 0x58]
lea edx, [rax + 2]
mov rcx, qword [rbx + 0x38]
call qword [sym.imp.USER32.dll_GetScrollInfo]
cmp dword [rsp + 0x68], r15d
jbe 0x14003709b
nop
mov rcx, rdi
cmp r14, 0x22
jne 0x140037080
call fcn.1400351f0
jmp 0x140037085
call fcn.1400355f0
test rax, rax
je 0x140037097
mov rdi, rax
inc r15d
cmp r15d, dword [rsp + 0x68]
jb 0x140037070
mov qword [rbp - 0x78], rdi
test rdi, rdi
je case.default.0x140037ef9
mov rdx, rdi
mov rcx, rbx
call fcn.1400326b0
mov rdx, qword [rbp - 0x78]
jmp 0x140036f49
lea eax, [r13 - 2]
cmp eax, 0x85
ja case.default.0x140037ef9
movzx eax, byte [rdi + rax + 0x38078]
mov ecx, dword [rdi + rax*4 + 0x38048]
add rcx, rdi
jmp rcx
mov eax, 1
jmp 0x140037fc2
mov r9, r12
mov edx, r13d
mov rcx, rsi
test r14, r14
je 0x140037116
mov r8, r14
call qword [sym.imp.USER32.dll_DefWindowProcW]
mov rdi, rax
mov byte [rbx + 0x105], r15b
mov rcx, rbx
call fcn.140035630
mov rax, rdi
jmp 0x140037fc2
mov byte [rbx + 0x105], 1
xor r8d, r8d
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x140037fc2
cmp r14, rsi
jne case.default.0x140037ef9
mov eax, 1
jmp 0x140037fc2
test r12w, r12w
setne sil
mov qword [rbx + 0x60], r14
movzx edi, sil
mov r9d, edi
mov r8, r14
mov edx, gethostbyaddr
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9d, edi
mov r8, qword [rbx + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9d, edi
mov r8, qword [rbx + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9d, edi
mov r8, qword [rbx + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rbx + 0x20]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9d, edi
mov r8, qword [rbx + 0x60]
mov edx, gethostbyaddr
mov rcx, qword [rbx + 0x30]
call qword [sym.imp.USER32.dll_SendMessageW]
lea rdx, [rsp + 0x78]
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetClientRect]
mov qword [rbp - 0x50], r15
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x58]
xor r8d, r8d
mov edx, 0x1205
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [rbp - 0x30]
or eax, 0x40
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 0x34]
mov dword [rsp + 0x28], eax
mov eax, dword [rbx + 0xf8]
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r8d, dword [rbx + 0xf8]
mov eax, dword [rbp - 0x30]
or eax, 0x40
mov ecx, dword [rbp - 0x38]
sub ecx, r8d
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 0x34]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
xor r9d, r9d
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.USER32.dll_SetWindowPos]
test sil, sil
je case.default.0x140037ccb
mov rcx, rbx
call fcn.140035630
xor eax, eax
jmp 0x140037fc2
mov rdx, qword [rbx + 0xe0]
test rdx, rdx
je case.default.0x140037ef9
mov rcx, rbx
call fcn.1400326b0
test eax, eax
js case.default.0x140037ef9
mov r8d, eax
mov edx, eax
mov rcx, rbx
call fcn.140035720
jmp case.default.0x140037ef9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateRectRgn]
mov rdi, rax
xor r8d, r8d
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetUpdateRgn]
cmp eax, 1
je 0x140037306
lea rdx, [rbp - 0x50]
mov rcx, rsi
call qword [sym.imp.USER32.dll_BeginPaint]
mov r8, rdi
lea rdx, [rbp - 0x50]
mov rcx, rbx
call fcn.140031550
lea rdx, [rbp - 0x50]
mov rcx, rsi
call qword [sym.imp.USER32.dll_EndPaint]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
jmp 0x140037fc2
mov r9, r12
mov r8, r14
mov edx, r13d
mov rcx, rsi
call qword [sym.imp.USER32.dll_DefWindowProcW]
or rax, 1
jmp 0x140037fc2
mov rcx, rbx
call fcn.140035bd0
mov rcx, rbx
call fcn.140035cf0
mov rcx, rbx
call fcn.140035890
mov qword [rbp - 0x50], 0x48
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov rcx, qword [rbx + 0x10]
mov qword [rbp - 0x48], rcx
lea rdx, [rbp - 0x38]
call qword [sym.imp.USER32.dll_GetClientRect]
lea r9, [rbp - 0x50]
xor r8d, r8d
mov edx, 0x434
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp case.default.0x140037ef9
mov rax, qword [rbx + 0x58]
cmp qword [r12], rax
jne 0x140037646
mov eax, dword [r12 + 0x10]
cmp eax, 0xfffffdee
je 0x1400374a3
cmp eax, 0xfffffdf7
jne 0x140037646
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov rax, qword [rbx + 0x118]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
xor r9d, r9d
mov r8d, dword [rbx + 0x10c]
mov edx, dword [rbx + 0x110]
mov rcx, rbx
call fcn.1400328f0
lea r9, [rsp + 0x58]
mov edx, 0x41f
mov r8d, 1
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9d, 2
lea r8, [rsp + 0x58]
xor edx, edx
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [rsp + 0x30], SafeArrayGetElement
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
mov r9d, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x58]
xor edx, edx
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SetWindowPos]
xor r9d, r9d
mov r8, qword [rbx + 0x60]
lea edx, [r9 + 0x30]
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov rax, qword [rbx + 0x118]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbx + 0x10c]
mov r8d, 0x7d5
mov rdx, qword [rbx + 0x58]
mov rcx, rbx
call fcn.140031490
mov eax, 1
jmp 0x140037fc2
cmp qword [rbx + 0x118], r15
je 0x14003763a
lea rdi, [r12 + 0x20]
lea rax, [r12 + 0x18]
mov qword [rax], rdi
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
mov rax, qword [rbx + 0x118]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbx + 0x10c]
mov r8d, 0x7d4
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
call fcn.140031490
test rax, rax
jne case.default.0x140037ccb
mov qword [rbp - 0x68], 0x50
mov rdx, qword [rbx + 0x118]
mov rcx, qword [rdx + 8]
mov rax, qword [rcx]
lea r8, [rbp - 0x68]
mov qword [rsp + 0x20], r8
mov r9, rdi
mov r8d, dword [rbx + 0x10c]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbp + 0x10], rax
mov qword [rbp], r15
mov ecx, 0x4e
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [rbp + 8], eax
mov rcx, rbx
call fcn.1400346a0
mov dword [rbp + 0xc], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x30], rax
mov rcx, qword [rbx + 0x118]
mov qword [rsp + 0x28], rcx
mov byte [rsp + 0x20], 1
mov r9b, 1
mov r8d, dword [rbx + 0x10c]
mov edx, dword [rbx + 0x110]
mov rcx, rbx
call fcn.1400328f0
mov dword [rbp - 0x50], 0x1c
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov dword [rbp - 0x38], eax
mov dword [rbp - 0x4c], 4
lea r8, [rbp - 0x50]
lea edx, [rax + 2]
mov rcx, qword [rbx + 0x48]
call qword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [rbx + 0xf8]
cmp dword [rbp - 0x78], eax
jne 0x1400375b5
cmp dword [rbp - 0x3c], r15d
jne case.default.0x140037ccb
mov esi, dword [rbx + 0x108]
and esi, 0xfffb3fff
bts esi, 0xa
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetDC]
mov r14, rax
mov rdx, qword [rbx + 0x60]
mov rcx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdi, rax
mov dword [rsp + 0x20], esi
lea r9, [rbp]
or r8d, 0xffffffff
mov rdx, qword [rbp + 0x10]
mov rcx, r14
call qword [sym.imp.USER32.dll_DrawTextW]
mov rdx, rdi
mov rcx, r14
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, r14
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [rbp - 0x70]
sub ecx, dword [rbp - 0x78]
mov eax, dword [rbp + 8]
sub eax, dword [rbp]
lea rdx, [0x1400d1428]
cmp eax, ecx
cmovg rdx, qword [rbp + 0x10]
mov r14, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x58]
jmp 0x140037641
lea rdx, [0x1400d1428]
mov qword [r12 + 0x18], rdx
mov rdx, qword [r12]
mov rcx, qword [rbx + 0x18]
cmp rdx, rcx
je 0x14003765d
cmp rdx, qword [rbx + 0x28]
jne case.default.0x140037ef9
mov eax, dword [r12 + 0x10]
cmp eax, 0xfffffec0
ja 0x140037881
je 0x14003771c
cmp eax, 0xfffffebb
je 0x1400376c5
cmp eax, 0xfffffebe
je 0x140037699
cmp eax, 0xfffffebf
jne case.default.0x140037ef9
mov rcx, rbx
call fcn.140035bd0
jmp case.default.0x140037ef9
cmp rdx, rcx
jne 0x1400376a3
mov r9d, r15d
jmp 0x1400376ab
mov r9d, dword [r12 + 0x18]
inc r9d
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
mov r8d, 0x7d3
jmp 0x140037f88
cmp rdx, qword [rbx + 0x28]
sete r15b
add r15d, dword [r12 + 0x18]
jne 0x1400376e5
cmp byte [rbx + 0x104], r15b
je 0x1400376e5
mov edi, dword [rbx + 0x100]
jmp 0x1400376f2
mov edx, r15d
mov rcx, rbx
call fcn.140032730
mov edi, eax
mov r8d, edi
mov edx, r15d
mov rcx, rbx
call fcn.140035ea0
test r15d, r15d
jne 0x14003770f
mov edx, edi
mov rcx, rbx
call fcn.1400359f0
mov rcx, rbx
call fcn.140035bd0
jmp case.default.0x140037ef9
mov rcx, qword [r12 + 0x20]
test byte [rcx], 1
je case.default.0x140037ef9
mov r8d, dword [r12 + 0x18]
test r8d, r8d
jne 0x140037743
mov eax, dword [rbx + 0xfc]
cmp dword [rcx + 4], eax
jl case.0x140037ccb.8
mov edi, r15d
cmp rdx, qword [rbx + 0x28]
sete dil
add edi, r8d
lea r8, [rsp + 0x78]
mov edx, edi
mov rcx, rbx
call fcn.140032af0
lea rdx, [rbp + 0x10]
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rax, qword [r12 + 0x20]
mov esi, dword [rax + 4]
mov ecx, dword [rbp - 0x80]
sub esi, ecx
add esi, dword [rsp + 0x78]
je case.default.0x140037ccb
mov dword [rsp + 0x58], ecx
mov eax, dword [rbp - 0x7c]
mov dword [rsp + 0x5c], eax
mov eax, dword [rbp + 0x18]
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0x1c]
mov dword [rsp + 0x64], eax
test edi, edi
jne 0x1400377a9
lea eax, [rcx - 1]
mov dword [rsp + 0x58], eax
mov edx, 0xfffffff0
mov rcx, qword [rbx + 0x38]
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
shr rax, 0x1c
test al, 1
je 0x1400377cf
mov ecx, 2
call qword [sym.imp.USER32.dll_GetSystemMetrics]
sub dword [rsp + 0x60], eax
mov dword [rsp + 0x38], 2
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x58]
xor r8d, r8d
mov edx, esi
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_ScrollWindowEx]
test edi, edi
jne 0x140037807
cmp byte [rbx + 0x104], r15b
jne 0x140037835
mov eax, dword [rsp + 0x78]
mov dword [rbp - 0x68], eax
mov eax, dword [rbp - 0x7c]
mov dword [rbp - 0x64], eax
mov eax, dword [rbp - 0x80]
mov dword [rbp - 0x60], eax
mov eax, dword [rbp + 0x1c]
mov dword [rbp - 0x5c], eax
xor r8d, r8d
lea rdx, [rbp - 0x68]
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_InvalidateRect]
test edi, edi
jne 0x140037868
mov edx, dword [rbp - 0x80]
add edx, esi
mov rcx, rbx
call fcn.1400359f0
mov rcx, rbx
call fcn.140035bd0
mov rcx, rbx
call fcn.140035cf0
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x140037870
mov rcx, rbx
call fcn.140035bd0
mov rcx, qword [rbx + 0x48]
call qword [sym.imp.USER32.dll_UpdateWindow]
xor eax, eax
jmp 0x140037fc2
cmp eax, 0xfffffec9
je 0x1400378ac
cmp eax, 0xfffffffb
jne case.default.0x140037ef9
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8d, [r9 - 5]
jmp 0x140037f8c
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_InvalidateRect]
xor eax, eax
jmp 0x140037fc2
mov rcx, rbx
call fcn.140030ce0
jmp case.default.0x140037ef9
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x1400378e4
cmp byte [rbx + 0x78], r15b
jne 0x1400378e4
call qword [sym.imp.COMCTL32.dll_ImageList_Destroy]
movzx edx, word [0x140126414]
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetPropW]
mov rcx, rbx
call fcn.140030740
mov rcx, rbx
call fcn.1400a7cb8
mov r9, r12
mov r8, r14
mov edx, r13d
mov rcx, rsi
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x140037fc2
cmp r13d, 0x20a
ja 0x140037edf
je 0x140037e73
cmp r13d, 0x115
ja 0x140037d20
je 0x140037c82
mov eax, r13d
sub eax, 0x102
je 0x140037a4b
sub eax, 0x11
je 0x140037a0c
dec eax
jne case.default.0x140037ef9
test r12, r12
je case.default.0x140037ef9
mov dword [rsp + 0x58], 0x1c
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x5c], 7
lea r8, [rsp + 0x58]
lea edx, [rax + 2]
mov rcx, r12
call qword [sym.imp.USER32.dll_GetScrollInfo]
movzx eax, r14w
cmp eax, 8
ja case.default.0x140037ccb
mov ecx, dword [rdi + rax*4 + 0x38100]
add rcx, rdi
jmp rcx
mov rax, r14
shr rax, 0x10
movzx r15d, ax
jmp case.0x1400379b4.6
mov r15d, dword [rsp + 0x64]
jmp case.0x1400379b4.6
mov r15d, dword [rsp + 0x6c]
inc r15d
jmp case.0x1400379b4.6
mov r15d, dword [rsp + 0x6c]
dec r15d
jmp case.0x1400379b4.6
mov r15d, dword [rsp + 0x6c]
add r15d, dword [rsp + 0x68]
jmp case.0x1400379b4.6
mov r15d, dword [rsp + 0x6c]
sub r15d, dword [rsp + 0x68]
mov dword [rsp + 0x6c], r15d
mov r8d, r15d
mov rdx, r12
mov rcx, rbx
call fcn.140033c00
jmp case.default.0x140037ef9
cmp r14, 0x64
jne case.default.0x140037ef9
lea rcx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea r9d, [r14 - 0x63]
lea r8, [rsp + 0x78]
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.USER32.dll_MapWindowPoints]
lea r8, [rsp + 0x78]
mov rdx, qword [rbx + 0x58]
mov rcx, rbx
call fcn.140036820
jmp case.default.0x140037ef9
cmp dword [rbx + 0xb8], r15d
je case.default.0x140037ef9
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp - 0x78], eax
mov ecx, eax
sub ecx, dword [rbx + 0x148]
cmp ecx, 0x2ee
jbe 0x140037a84
lea rcx, [rbx + 0x150]
lea rdx, [0x1400dab90]
call fcn.140030830
cmp qword [rbx + 0xe0], r15
je 0x140037b28
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400a8e40
mov rdi, rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140037ac9
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, [0x1400dab90]
call fcn.1400a6ce0
mov qword [rdi], rax
jmp 0x140037ad1
mov rdi, r15
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x58], rdi
test rdi, rdi
jne 0x140037ae6
mov ecx, 0x8007000e
call fcn.1400a6a90
int3
lea rcx, [rbx + 0x150]
lea rdx, [rsp + 0x58]
call fcn.1400308f0
movzx edi, al
mov rcx, qword [rsp + 0x78]
call fcn.140009910
test dil, dil
je 0x140037b17
mov rcx, qword [rbx + 0xe0]
call fcn.1400351f0
jmp 0x140037b1e
mov rax, qword [rbx + 0xe0]
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x140037b34
mov rax, qword [rbx + 0xa8]
mov qword [rsp + 0x48], rax
mov eax, dword [rbp - 0x78]
mov dword [rbx + 0x148], eax
xor eax, eax
mov word [rsp + 0x42], ax
mov word [rsp + 0x40], r14w
lea ecx, [rax + 0x18]
call fcn.1400a8e40
mov rdi, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140037b88
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rdi], rax
test rax, rax
jne 0x140037b8b
mov ecx, 0x8007000e
call fcn.1400a6a90
int3
mov rdi, r15
mov qword [rsp + 0x58], rdi
test rdi, rdi
jne 0x140037ba0
mov ecx, 0x8007000e
call fcn.1400a6a90
nop
lea rcx, [rbx + 0x150]
lea rdx, [rsp + 0x58]
call fcn.140004480
nop
mov rcx, rdi
call fcn.140009910
mov rdi, qword [rsp + 0x48]
nop
mov qword [rsp + 0x58], 0x104
mov rcx, qword [rdi + 8]
mov rax, qword [rcx]
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x20]
xor r8d, r8d
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, rax
mov qword [rsp + 0x78], rax
mov rcx, qword [rbx + 0x150]
test rcx, rcx
je 0x140037c10
mov rcx, qword [rcx]
test rcx, rcx
je 0x140037c10
call qword [sym.imp.OLEAUT32.dll_VariantInit]
mov r9, qword [rsp + 0x78]
jmp 0x140037c13
mov eax, r15d
mov rcx, qword [rbx + 0x150]
test rcx, rcx
je 0x140037c24
mov rdx, qword [rcx]
jmp 0x140037c27
mov rdx, r15
mov r8d, eax
mov rcx, r9
call fcn.1400a9d30
test eax, eax
je 0x140037c5d
mov rcx, rdi
call fcn.1400351f0
mov rdi, rax
test rax, rax
jne 0x140037c4d
mov rdi, qword [rbx + 0xa8]
cmp rdi, qword [rsp + 0x48]
je case.default.0x140037ef9
jmp 0x140037bc0
mov rdx, rdi
mov rcx, rbx
call fcn.140035de0
mov rdx, rdi
mov rcx, rbx
call fcn.1400326b0
mov edx, eax
mov rcx, rbx
call fcn.140032480
jmp case.default.0x140037ef9
mov dword [rsp + 0x58], 0x1c
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x5c], 7
lea r8, [rsp + 0x58]
lea edx, [rax + 2]
mov rcx, qword [rbx + 0x38]
call qword [sym.imp.USER32.dll_GetScrollInfo]
movzx eax, r14w
cmp eax, 8
ja case.default.0x140037ccb
mov ecx, dword [rdi + rax*4 + 0x38124]
add rcx, rdi
jmp rcx
mov rax, r14
shr rax, 0x10
movzx r15d, ax
jmp case.0x140037ccb.6
mov r15d, dword [rsp + 0x64]
jmp case.0x140037ccb.6
mov r15d, dword [rsp + 0x6c]
inc r15d
jmp case.0x140037ccb.6
mov r15d, dword [rsp + 0x6c]
dec r15d
jmp case.0x140037ccb.6
mov r15d, dword [rsp + 0x6c]
add r15d, dword [rsp + 0x68]
jmp case.0x140037ccb.6
mov r15d, dword [rsp + 0x6c]
sub r15d, dword [rsp + 0x68]
mov dword [rsp + 0x6c], r15d
mov edx, r15d
mov rcx, rbx
call fcn.140036a40
jmp case.default.0x140037ef9
cmp r13d, 0x201
je 0x140037dc3
lea eax, [r13 - 0x203]
cmp eax, 1
ja case.default.0x140037ef9
movsx eax, r12w
mov dword [rsp + 0x78], eax
mov rax, r12
shr rax, 0x10
cwde
mov dword [rsp + 0x7c], eax
mov dword [rbp - 0x78], r15d
mov dword [rsp + 0x40], r15d
mov qword [rbp - 0x68], r15
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x78]
mov rdx, qword [rsp + 0x78]
mov rcx, rbx
call fcn.140033650
test al, 0xe0
je case.default.0x140037ef9
mov rdi, qword [rbp - 0x68]
mov rdx, rdi
mov rcx, rbx
call fcn.140035de0
mov eax, 0xfffffffd
mov r8d, 0xfffffffb
cmp r13d, 0x203
cmove r8d, eax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdi
mov r9d, dword [rsp + 0x40]
jmp 0x140037f88
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetFocus]
movsx eax, r12w
mov dword [rsp + 0x78], eax
mov rax, r12
shr rax, 0x10
cwde
mov dword [rsp + 0x7c], eax
mov dword [rbp - 0x78], r15d
mov qword [rbp - 0x68], r15
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp - 0x78]
mov rdx, qword [rsp + 0x78]
mov rcx, rbx
call fcn.140033650
mov dword [rbp - 0x78], eax
mov rdi, qword [rbp - 0x68]
test al, 0xe0
je 0x140037e35
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdi
xor r9d, r9d
lea r8d, [r9 - 2]
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
call fcn.140031490
mov eax, dword [rbp - 0x78]
test al, 0x40
je 0x140037e58
mov r8d, dword [rdi + 0x3c]
shr r8d, 4
not r8b
and r8b, 1
mov rdx, rdi
mov rcx, rbx
call fcn.140032530
jmp case.default.0x140037ef9
test eax, 0x1e0
je case.default.0x140037ef9
mov rdx, rdi
mov rcx, rbx
call fcn.140035de0
jmp case.default.0x140037ef9
mov rax, r14
shr rax, 0x10
movsx r8d, ax
add r8d, dword [rbx + 0xf4]
mov dword [rbx + 0xf4], r8d
mov eax, r8d
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x28
jl case.default.0x140037ef9
mov eax, 0x66666667
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdx + rdx*4]
shl ecx, 3
mov eax, r8d
sub eax, ecx
mov dword [rbx + 0xf4], eax
mov eax, 0x99999999
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rcx, rbx
call fcn.1400368c0
jmp case.default.0x140037ef9
lea eax, [r13 - 0x2000]
cmp eax, 5
ja case.default.0x140037ef9
mov ecx, dword [rdi + rax*4 + 0x38148]
add rcx, rdi
jmp rcx
test r12, r12
je 0x140037f12
or dword [r14 + 0x3c], 0x40
cmp dword [r14 + 0x38], r15d
jne case.default.0x140037ccb
and dword [r14 + 0x3c], 0xffffffef
jmp case.default.0x140037ccb
and dword [r14 + 0x3c], 0xffffffbf
xor eax, eax
jmp 0x140037fc2
test r12, r12
setne r8b
mov rdx, r14
mov rcx, rbx
call fcn.140032530
movzx eax, al
jmp 0x140037fc2
mov eax, dword [r14 + 0x38]
jmp 0x140037fc2
mov rdx, r14
mov rcx, rbx
call fcn.1400326b0
test eax, eax
js case.default.0x140037ccb
mov r8d, eax
mov edx, eax
mov rcx, rbx
call fcn.140035720
xor eax, eax
jmp 0x140037fc2
mov r9, qword [r12 + 0x10]
mov r8, qword [r12 + 8]
mov rdx, qword [r12]
mov rcx, rbx
call fcn.140035150
jmp 0x140037fc2
mov rdx, r14
mov rcx, rbx
call fcn.1400326b0
cdqe
jmp 0x140037fc2
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
call fcn.140031490
mov qword [rsp + 0x20], r12
mov r9, r14
mov r8d, r13d
mov rdx, rsi
mov rcx, rbx
call fcn.1400309b0
jmp 0x140037fc2
mov qword [rsp + 0x20], r12
mov r9, r14
mov r8d, r13d
mov rdx, rsi
mov rcx, rbx
call fcn.140034770
mov rcx, qword [rbp + 0x230]
xor rcx, rsp
call fcn.1400ab140
add rsp, 0x348
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret