Function at 0x406780
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 4], 1
call fcn.00406730
test eax, eax
je 0x4067b3
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call sym.convertifd.exe_Previous_IME_HandleMessage
add esp, 0x10
jmp 0x4069fb
lea ecx, [ebp - 8]
push ecx
call sym.convertifd.exe_IsAsianDBCSEnv
add esp, 4
test eax, eax
jne 0x4067de
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x4069fb
cmp dword [ebp - 8], 0x3a4
je 0x40680b
cmp dword [ebp - 8], 0x3b5
je 0x40680b
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x4069fb
cmp dword [sym.convertifd.exe_fdwProperty], 0
jne 0x406825
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
call fcn.004074b0
add esp, 4
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0x10f
ja 0x40686a
cmp dword [ebp - 0x14], 0x10f
je 0x40694c
cmp dword [ebp - 0x14], 0x51
je 0x4069bb
cmp dword [ebp - 0x14], 0x10d
je 0x4069cc
cmp dword [ebp - 0x14], 0x10e
je 0x406965
jmp 0x4069db
cmp dword [ebp - 0x14], 0x281
je 0x4069a5
cmp dword [ebp - 0x14], 0x282
je 0x40697a
cmp dword [ebp - 0x14], 0x286
je 0x406892
jmp 0x4069db
cmp dword [ebp - 8], 0x3b5
jne 0x406938
mov dword [ebp - 0x10], 0
mov edx, dword [ebp + 0x10]
and edx, 0xffff
movzx eax, dx
and eax, 0xff00
je 0x4068de
mov ecx, dword [ebp + 0x10]
and ecx, 0xffff
movzx edx, cx
and edx, 0xff00
sar edx, 8
mov eax, dword [ebp - 0x10]
mov byte [ebp + eax - 0xc], dl
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 0x10]
and edx, 0xffff
movzx eax, dx
and eax, 0xff
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0xc], al
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
mov byte [ebp + eax - 0xc], 0
mov ecx, dword [ebp - 0x10]
push ecx
lea edx, [ebp - 0xc]
push edx
call sym.convertifd.exe_IpTextChars
add esp, 8
cmp dword [0x6013e8], 0
jne 0x406931
xor eax, eax
cmp dword [0x6013e4], 0
sete al
mov dword [0x6a26c0], eax
xor eax, eax
jmp 0x4069fb
xor ecx, ecx
cmp dword [0x6013e8], 0
sete cl
mov dword [ebp - 4], ecx
jmp 0x4069db
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00406a00
add esp, 8
mov dword [ebp - 4], eax
jmp 0x4069db
mov ecx, dword [ebp + 8]
push ecx
call fcn.00407300
add esp, 4
mov dword [ebp - 4], eax
jmp 0x4069db
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00407360
add esp, 0x10
mov dword [ebp - 4], eax
push 1
push 2
call sym.convertifd.exe_TextCursorOperation
add esp, 8
jmp 0x4069db
call fcn.00407480
test eax, eax
jne 0x4069b9
mov eax, dword [ebp + 0x14]
and eax, 0x7fffffff
mov dword [ebp + 0x14], eax
jmp 0x4069db
mov ecx, dword [ebp + 8]
push ecx
call sym.convertifd.exe_IME_InputLangChange
add esp, 4
mov dword [ebp - 4], eax
jmp 0x4069db
mov edx, dword [ebp + 8]
push edx
call fcn.00407230
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4069f9
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x4069fb
xor eax, eax
mov esp, ebp
pop ebp
ret