Function at 0x14015baac
Capabilities:
Get file version info
Get keyboard layout

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xf0
mov dword [rbp - 0x20], 0x2803c696
mov byte [rbp - 0xc9], 0x16
add dword [rbp - 0x20], 0x69f64f24
cmp dword [rbp - 0x20], 0x91fa15ba
je 0x14015bae7
cmp dword [rbp - 0x20], 0x64e63bae
je 0x14015bb76
jmp 0x14015bbfb
movzx eax, byte [rbp - 0xc9]
cmp al, 2
je 0x14015bbfa
mov rax, qword [0x140170310]
movabs rdx, 0xfcf18d7c96531399
cmp rdx, rax
jae 0x14015bbfa
mov rax, qword [rbp - 0x70]
lea rdx, [rbp - 0xc4]
mov r9, rdx
mov r8d, 0xde
mov edx, 0xc
mov rcx, rax
call sub.VERSION.dll_GetFileVersionInfoW
mov dword [rbp - 0xc4], eax
mov rax, qword [0x140170310]
mov rdx, rax
mov ecx, 0xb6
call fcn.14015ba84
movzx eax, byte [rbp - 0xc9]
sub eax, 0x45
mov byte [rbp - 0xc9], al
mov rax, qword [rbp - 0x40]
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_IsMenu]
call rax
mov dword [rbp - 0xc8], eax
jmp 0x14015bbfa
movzx eax, byte [rbp - 0xc9]
movsx eax, al
cmp eax, 0x5e
je 0x14015bb8c
cmp eax, 0x6f
je 0x14015bbd1
jmp 0x14015bbfb
call fcn.14015baac
movzx eax, byte [rbp - 0xc9]
and eax, 0x72
mov byte [rbp - 0xc9], al
mov rax, qword [sym.imp.USER32.dll_AnyPopup]
call rax
mov dword [rbp - 0x34], eax
mov edx, dword [rbp - 0x20]
mov eax, dword [rbp - 0x20]
mov ecx, eax
call fcn.140003f0b
sar dword [rbp - 0x20], 3
mov ecx, 1
mov rax, qword [sym.imp.USER32.dll_ShowCursor]
call rax
mov dword [rbp - 0x1c], eax
jmp 0x14015bbf8
mov rdx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
mov r9d, 0x4a
mov r8d, 0xad
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_HiliteMenuItem]
call rax
mov dword [rbp - 0xc8], eax
nop
jmp 0x14015bbfb
nop
mov dword [rbp - 0x44], 0xba7e2077
mov byte [rbp - 0x45], 0x1f
cmp dword [rbp - 0x1c], 0
jne 0x14015bc46
mov rdx, qword [0x140170310]
movabs rax, 0xad164438ceed9f30
cmp rdx, rax
jne 0x14015bc3c
movzx eax, byte [rbp - 0x45]
mov byte [rbp - 0xb], al
mov word [rbp - 0xa], 0x38e2
lea rax, [rbp - 0xc9]
mov qword [rbp - 0x18], rax
jmp 0x14015bc44
or dword [rbp - 0x44], 0xc0bff76f
nop
jmp 0x14015bc73
movzx eax, byte [rbp - 0xc9]
shl eax, 4
mov edx, eax
mov rax, qword [rbp - 0x18]
mov byte [rax], dl
lea rdx, [rbp - 0xc9]
mov rax, qword [rbp - 0x50]
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_GetComboBoxInfo]
call rax
mov dword [rbp - 0x34], eax
nop
mov eax, dword [rbp - 0x1c]
mov dword [rbp - 0x54], eax
movzx eax, byte [rbp - 0xc9]
movsx eax, al
cmp eax, 0x16
je 0x14015bc96
cmp eax, 0x3a
je 0x14015bd17
jmp 0x14015bd32
lea rax, [rbp - 0xc9]
mov qword [rbp - 8], rax
movzx eax, byte [rbp - 0xb]
mov byte [rbp - 0x55], al
cmp dword [rbp - 0x54], 0x3070fd06
jne 0x14015bd14
call fcn.14015baac
xor word [rbp - 0xa], 0x643d
mov rax, qword [rbp - 0x18]
movzx eax, byte [rax]
mov edx, eax
movzx eax, byte [rbp - 0xc9]
mov ecx, eax
mov eax, edx
sub eax, ecx
mov edx, eax
mov rax, qword [rbp - 0x18]
mov byte [rax], dl
mov edx, dword [rbp - 0x54]
mov eax, dword [rbp - 0x20]
mov ecx, eax
call fcn.140003f0b
lea rdx, [rbp - 0xc0]
mov rax, qword [rbp - 0x60]
mov r9, rdx
mov r8d, 0
mov edx, 0xf2
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_GetMenuItemInfoW]
call rax
mov dword [rbp - 0xc8], eax
jmp 0x14015bd15
nop
jmp 0x14015bd32
mov rax, qword [rbp - 8]
movzx eax, byte [rax]
mov edx, eax
movzx eax, byte [rbp - 0xc9]
add eax, edx
mov edx, eax
mov rax, qword [rbp - 0x18]
mov byte [rax], dl
nop
mov eax, dword [rbp - 0x20]
mov dword [rbp - 0x1c], eax
cmp word [rbp - 0xa], 0x379b
jle 0x14015bdd3
movzx eax, byte [rbp - 0xc9]
movsx eax, al
cmp eax, 0x25
jne 0x14015bd70
lea rax, [rbp - 0x70]
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_GetProcessDefaultLayout]
call rax
mov dword [rbp - 0xc8], eax
call fcn.14015bdf7
jmp 0x14015bd71
nop
movzx eax, byte [rbp - 0xc9]
mov edx, eax
mov rax, qword [rbp - 8]
movzx eax, byte [rax]
mov ecx, eax
mov eax, edx
sub eax, ecx
mov edx, eax
mov rax, qword [rbp - 0x18]
mov byte [rax], dl
lea rax, [rbp - 0xc8]
mov rdx, rax
mov ecx, 0x1d
mov rax, qword [sym.imp.USER32.dll_GetKeyboardLayoutList]
call rax
mov dword [rbp - 0x64], eax
mov edx, dword [rbp - 0x54]
mov eax, dword [rbp - 0x20]
add eax, edx
mov dword [rbp - 0x1c], eax
mov rax, qword [rbp - 8]
movzx eax, byte [rax]
mov edx, eax
movzx eax, byte [rbp - 0xc9]
mov ecx, eax
mov eax, edx
sub eax, ecx
mov edx, eax
mov rax, qword [rbp - 0x18]
mov byte [rax], dl
mov rax, qword [rbp - 8]
movzx edx, byte [rax]
mov rax, qword [rbp - 0x18]
movzx eax, byte [rax]
and eax, edx
mov byte [rbp - 0xc9], al
mov eax, 0xa4
add rsp, 0xf0
pop rbp
ret