Function at 0x762e5ff6
Capabilities:
Get keyboard layout

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
xor ebx, ebx
inc ebx
push ebx
push dword [ebp + 8]
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], edi
call fcn.762f4608
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x762e6038
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
call sym.IMM32.dll_ImmLockImeDpi
cmp eax, edi
mov dword [ebp - 0x1c], eax
jne 0x762e603f
xor eax, eax
jmp 0x762e637b
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], edi
mov edi, dword [ebp + 0x10]
xor edx, edx
cmp ecx, edx
mov dword [ebp - 0x28], edi
je 0x762e60e3
test byte [eax + 0x12], 8
je 0x762e60ed
mov eax, dword [ebp + 0xc]
xor esi, esi
inc esi
cmp eax, 9
mov dword [ebp - 0x24], esi
je 0x762e61a0
cmp eax, 0x12
je 0x762e6155
cmp eax, 0x24
je 0x762e60f8
cmp eax, 0x10000
je 0x762e609a
cmp eax, 0x20000
jne 0x762e6299
cmp edi, edx
je 0x762e60bc
push edx
push ecx
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x14]
push edi
call fcn.762e4140
test eax, eax
mov dword [ebp - 0xc], eax
je 0x762e6299
cmp dword [ebp + 0x18], 0
je 0x762e61eb
push 0
push dword [ebp + 0x20]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.762e4140
jmp 0x762e61e0
test byte [eax + 0x12], 8
je 0x762e6068
xor esi, esi
mov dword [ebp - 0x24], edx
inc esi
jmp 0x762e620e
cmp edi, edx
je 0x762e611f
push edx
push ecx
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 4]
push eax
push 8
push dword [ebp + 0x14]
push edi
push dword [ebp + 8]
call fcn.762e5e25
test eax, eax
mov dword [ebp - 0xc], eax
je 0x762e6299
cmp dword [ebp + 0x18], 0
je 0x762e61ed
push 0
push dword [ebp + 0x20]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push esi
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.762e5e25
test eax, eax
mov dword [ebp - 0x10], eax
jne 0x762e61ed
jmp 0x762e6299
cmp edi, edx
je 0x762e617c
push edx
push ecx
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 4]
push eax
push 8
push dword [ebp + 0x14]
push edi
push dword [ebp + 8]
call fcn.762e5be8
test eax, eax
mov dword [ebp - 0xc], eax
je 0x762e6299
cmp dword [ebp + 0x18], 0
je 0x762e61ed
push 0
push dword [ebp + 0x20]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push esi
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.762e5be8
jmp 0x762e6145
cmp edi, edx
je 0x762e61c2
push edx
push ecx
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x14]
push edi
call fcn.762e39db
test eax, eax
mov dword [ebp - 0xc], eax
je 0x762e6299
cmp dword [ebp + 0x18], 0
je 0x762e61eb
push 0
push dword [ebp + 0x20]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.762e39db
test eax, eax
mov dword [ebp - 0x10], eax
je 0x762e6299
xor ebx, ebx
cmp dword [ebp - 0xc], 0
je 0x762e61fc
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 4]
mov dword [ebp + 0x14], eax
cmp dword [ebp - 0x10], 0
je 0x762e620e
mov eax, dword [ebp - 8]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp + 0x1c], eax
push ebx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 8]
call fcn.762e3893
test eax, eax
jle 0x762e628f
mov eax, dword [ebp + 0xc]
cmp eax, 9
je 0x762e6254
cmp eax, 0x12
je 0x762e63bf
cmp eax, 0x24
je 0x762e6382
cmp eax, 0x10000
je 0x762e624b
cmp eax, 0x20000
jne 0x762e6257
mov eax, dword [ebp - 0x1c]
test byte [eax + 0x20], 4
je 0x762e6257
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x30]
push dword [eax + 0x118]
call sym.IMM32.dll_ImmUnlockIMCC
push dword [ebp + 8]
call sym.IMM32.dll_ImmUnlockIMC
cmp dword [ebp - 0x14], 0
je 0x762e628f
push dword [ebp + 0x1c]
mov eax, dword [ebp - 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [eax + 0x8c]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x24], 0
je 0x762e6344
xor ebx, ebx
and dword [ebp + 8], ebx
cmp dword [ebp + 0xc], 0x20000
jne 0x762e6344
xor esi, esi
cmp dword [ebp - 0x28], esi
je 0x762e62ea
xor eax, eax
cmp dword [ebp + 0x20], esi
push esi
sete al
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x14]
push edi
call fcn.762e4140
mov ebx, eax
cmp ebx, esi
je 0x762e62ea
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 0x28]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
cmp dword [ebp - 0x2c], esi
je 0x762e632c
xor eax, eax
cmp dword [ebp + 0x20], esi
push esi
sete al
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.762e4140
cmp eax, esi
mov dword [ebp + 8], eax
je 0x762e632c
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x2c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
je 0x762e6339
push ebx
call esi
cmp dword [ebp + 8], 0
je 0x762e6344
push dword [ebp + 8]
call esi
cmp dword [ebp - 0xc], 0
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x762e635d
push dword [ebp - 0xc]
push 0
push dword [0x762f6888]
call esi
cmp dword [ebp - 0x10], 0
je 0x762e6370
push dword [ebp - 0x10]
push 0
push dword [0x762f6888]
call esi
push dword [ebp - 0x1c]
call sym.IMM32.dll_ImmUnlockImeDpi
mov eax, dword [ebp - 0x14]
pop edi
pop esi
pop ebx
leave
ret 0x1c
test edi, edi
mov esi, dword [ebp - 0x20]
je 0x762e63a3
push dword [esi + 0x24]
mov eax, dword [esi + 0x28]
add eax, esi
push eax
push dword [ebp + 0x14]
push edi
call fcn.762e3967
test eax, eax
je 0x762e6257
cmp dword [ebp + 0x18], 0
je 0x762e6414
push dword [esi + 0xc]
mov eax, dword [esi + 0x10]
add eax, esi
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.762e3967
jmp 0x762e640c
test edi, edi
mov esi, dword [ebp - 0x20]
je 0x762e63e9
push dword [esi + 0x24]
mov eax, dword [esi + 0x28]
add eax, esi
push eax
push dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
add eax, esi
push eax
push dword [ebp + 0x14]
push edi
call fcn.762e3901
test eax, eax
je 0x762e6257
cmp dword [ebp + 0x18], 0
je 0x762e6414
push dword [esi + 0xc]
mov eax, dword [esi + 0x10]
add eax, esi
push eax
push dword [esi + 4]
mov eax, dword [esi + 8]
add eax, esi
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.762e3901
test eax, eax
je 0x762e6257
mov dword [ebp - 0x14], 1
jmp 0x762e6257