Function at 0x100007304
Capabilities:
Get keyboard layout

Disassembly:
jmp 0x100007220
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rbx, rax
cmp rax, rbp
je 0x1000072d4
movzx ecx, byte [rsp + 0x98]
lea rax, [rsp + 0x9a]
xor r9d, r9d
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x60], ebp
mov dword [rsp + 0x58], ebp
mov dword [rsp + 0x50], ebp
mov dword [rsp + 0x48], ebp
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x30], ebp
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], ebp
call qword [sym.imp.GDI32.dll_CreateFontW]
mov rsi, rax
cmp rax, rbp
je 0x1000072c6
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rbp, rax
test rax, rax
je 0x1000072bb
lea r8, [rsp + 0x9a]
mov edx, 0x20
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetTextFaceW]
mov rdx, rbp
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
xor ebp, ebp
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteDC]
mov esi, 0x444
mov qword [rsp + 0x70], rbp
cmp r13b, bpl
je 0x100017b51
lea r9, [rsp + 0x80]
xor r8d, r8d
mov edx, esi
mov rcx, r14
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x10000754c
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x160
mov rax, qword [0x1000400a0]
xor rax, rsp
mov qword [rsp + 0x150], rax
xor ebp, ebp
mov r12, r9
mov r14, r8
mov r13b, dl
mov rdi, rcx
mov esi, 0x444
mov r15d, ebp
mov edx, dword [rdi + 0x18]
mov ebx, 1
cmp edx, dword [rdi + 0x1c]
jge 0x100007578
mov rcx, qword [rdi + 0x10]
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rbp
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
call qword [rax + 0x38]
cmp eax, ebp
jne 0x100017afa
mov rdx, qword [rsp + 0x70]
lea r8, [rsp + 0x100]
xor r9d, r9d
mov rcx, rdi
call fcn.1000069b0
cmp eax, ebp
jne 0x100017afa
mov rdx, qword [rsp + 0x70]
lea r8, [rsp + 0x100]
mov r9d, ebx
mov rcx, rdi
call fcn.1000069b0
cmp eax, ebp
jne 0x100017afa
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + 0x68]
cmp eax, ebp
jne 0x100017afa
mov rdx, qword [rsp + 0x78]
lea r9d, [rbx + 1]
lea r8, [rsp + 0x100]
mov rcx, rdi
call fcn.1000069b0
cmp eax, ebp
jne 0x100017afa
mov rdx, qword [rsp + 0x78]
lea r9d, [rbx + 2]
lea r8, [rsp + 0x100]
mov rcx, rdi
call fcn.1000069b0
cmp eax, ebp
jne 0x100017afa
mov rcx, qword [rsp + 0x78]
cmp rcx, rbp
je 0x100007424
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x78], rbp
mov rcx, qword [rsp + 0x70]
cmp rcx, rbp
je 0x100007434
mov rax, qword [rcx]
call qword [rax + 0x10]
inc dword [rdi + 0x18]
cmp ebx, ebp
je 0x10000757b
mov ebx, 0x74
lea rcx, [rsp + 0x80]
xor edx, edx
mov r8, rbx
call sub.msvcrt.dll_memset
mov dword [rsp + 0x80], ebx
mov qword [rsp + 0x70], rbp
cmp r13b, bpl
je 0x100017b0a
lea r9, [rsp + 0x80]
xor r8d, r8d
mov edx, 0x43a
mov rcx, r14
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x100007486
mov ecx, dword [rsp + 0x84]
movzx ebx, word [rsp + 0x102]
lea r8, [rsp + 0x108]
bts ecx, 0x19
shl bx, 0xa
mov edx, 0x20
or bx, word [rsp + 0x100]
bts ecx, 0x1f
movzx eax, bx
bts ecx, 0x1d
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0x104]
mov dword [rsp + 0x84], ecx
mov dword [rsp + 0x8c], eax
lea rax, [rsp + 0x9a]
lea rcx, [rsp + 0x9a]
sub r8, rax
lea rax, [rdx + 0x7fffffde]
cmp rax, rbp
je 0x10000750f
movzx eax, word [r8 + rcx]
cmp ax, bp
je 0x10000750f
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1000074ec
cmp rdx, rbp
je 0x100017b3d
mov word [rcx], bp
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
cmp r15d, ebp
jne 0x10000754c
cmp ax, bx
je 0x100017b46
cmp bp, word [rsp + 0x102]
jne 0x10000754c
xor ax, bx
mov ecx, 0x3ff
test cx, ax
je 0x10000721e
mov qword [rsp + 0x70], rbp
cmp r13b, bpl
je 0x100017b81
lea r9, [rsp + 0x80]
mov r8d, 0x10
mov edx, esi
mov rcx, r14
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x100007343
mov dword [rdi + 0x18], ebp
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.1000012f0
mov rbx, qword [rsp + 0x1a8]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, rdi
mov ebx, ebp
call fcn.10000b524
nop
jmp 0x10000740f
cmp r12, rbp
je 0x100007486
mov rax, qword [r12]
lea rcx, [rsp + 0x70]
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov edx, 0x43a
mov rcx, r12
call qword [rax + 0x18]
nop
jmp 0x100007486
sub rcx, 2
jmp 0x100007518
mov r15d, 1
jmp 0x100007220
cmp r12, rbp
je 0x10000754c
mov rax, qword [r12]
lea rcx, [rsp + 0x70]
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov edx, esi
mov rcx, r12
call qword [rax + 0x18]
nop
jmp 0x10000754c
cmp r12, rbp
je 0x100007343
mov rax, qword [r12]
lea rcx, [rsp + 0x70]
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rcx
mov r8d, 0x10
mov edx, esi
mov rcx, r12
call qword [rax + 0x18]
jmp 0x100007343