Function at 0x1000ca80
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, ecx
mov dword [edi], 0
lea ecx, [edi + 0x14]
mov eax, dword [sym.imp.Qt5Core.dll_struct_QHashData_const_QHashData::shared_null]
mov dword [edi + 4], eax
mov eax, dword [sym.imp.Qt5Core.dll_struct_QHashData_const_QHashData::shared_null]
mov dword [edi + 8], eax
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0x60
call fcn.100159a0
lea ecx, [edi + 0x2c2c]
call fcn.10017c50
mov dword [edi + 0x2c58], 0
lea ecx, [edi + 0x2c88]
mov eax, dword [sym.imp.Qt5Core.dll_struct_QHashData_const_QHashData::shared_null]
mov dword [edi + 0x2c5c], eax
mov eax, dword [sym.imp.Qt5Core.dll_struct_QHashData_const_QHashData::shared_null]
mov dword [edi + 0x2c60], eax
mov dword [edi + 0x2c64], 0
mov dword [edi + 0x2c68], 0
mov dword [edi + 0x2c6c], 0
mov dword [edi + 0x2c70], 0
mov dword [edi + 0x2c74], 0
mov byte [edi + 0x2c78], 0
mov dword [edi + 0x2c7c], 0
mov dword [edi + 0x2c80], 0
mov dword [edi + 0x2c84], 0
call fcn.1001eff0
lea ecx, [edi + 0x2c90]
call fcn.100133f0
mov dword [edi + 0x2c94], 0
mov dword [edi + 0x2c98], 0
push 0
mov dword [edi + 0x2c9c], 0
call dword [sym.imp.ole32.dll_OleInitialize]
mov ecx, 0x1011bd50
mov dword [edi + 0x2ca0], eax
mov dword [edi + 0x2ca4], 0
mov byte [edi + 0x2ca8], 0
mov dword [edi + 0x2cac], 0
mov dword [edi + 0x2cb0], 0
call fcn.1000eef0
mov ecx, 0x1011bda0
call fcn.1000ed90
cmp dword [edi + 0x2c58], 0
jne 0x1000cbc3
cmp dword [edi + 0x2c44], 0
je 0x1000cbc6
or dword [edi], 2
push 0
call dword [sym.imp.USER32.dll_GetDC]
push 0x5a
push eax
mov dword [edi + 0xc], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0
push 0
mov dword [edi + 0x10], eax
call dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
mov ebx, eax
test ebx, ebx
je 0x1000cc4c
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100d4938
add esp, 4
mov esi, eax
push esi
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
xor eax, eax
test ebx, ebx
jle 0x1000cc43
nop word [eax + eax]
movzx ecx, word [esi + eax*4]
and ecx, 0x3ff
dec ecx
cmp ecx, 0x59
ja case.0x1000cc37.2
movzx ecx, byte [ecx + 0x1000cce4]
jmp dword [ecx*4 + 0x1000ccdc]
inc eax
cmp eax, ebx
jl 0x1000cc20
push esi
call fcn.100d4941
add esp, 4
call fcn.1002cd60
mov byte [0x1011bd48], al
cmp dword [edi + 0x2ca0], 0
jge 0x1000ccbb
push 0
push 0
push 0
lea ecx, [esp + 0x20]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QMessageLogger::constructor_char_const___int__char_const__]
lea ecx, [esp + 0x10]
push ecx
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QDebug___thiscall_QMessageLogger::warning_void_]
push str.QWindowsContext:_OleInitialize___failed:
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QDebug____thiscall_QDebug::operator___char_const__]
push dword [edi + 0x2ca0]
mov esi, eax
lea eax, [esp + 0x10]
push eax
call fcn.1000e290
add esp, 8
mov ecx, esi
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QDebug____thiscall_QDebug::operator___class_QByteArray_const__]
lea ecx, [esp + 0xc]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QByteArray::destructor_void_]
lea ecx, [esp + 0x10]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QDebug::destructor_void_]
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
push esi
call fcn.100d4941
add esp, 4
or dword [edi], 1
mov byte [edi + 0x14], 1
jmp 0x1000cc4c