Function at 0x1003c740
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100822c8
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x100afcf0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
movzx ecx, ax
mov eax, dword [ebp + 8]
cmp eax, 0x100
ja 0x1003c948
je 0x1003c930
cmp eax, 0x5a
ja case.default.0x1003ccc9
movzx eax, byte [eax + 0x1003ce64]
jmp dword [eax*4 + 0x1003cdc0]
mov eax, str.Shift
jmp 0x1003cda3
mov eax, str.Ctrl
jmp 0x1003cda3
mov eax, 0x1008c124
jmp 0x1003cda3
mov eax, str.Space
jmp 0x1003cda3
mov eax, 0x10087cd4
jmp 0x1003cda3
mov eax, 0x10087cd8
jmp 0x1003cda3
mov eax, str.23456
jmp 0x1003cda3
mov eax, 0x1008abec
jmp 0x1003cda3
mov eax, 0x1008abf0
jmp 0x1003cda3
mov eax, 0x1008abf4
jmp 0x1003cda3
mov eax, 0x1008abf8
jmp 0x1003cda3
mov eax, str.789ABDEFGHIJKLMNOPQRSTUVWXYZ_
jmp 0x1003cda3
mov eax, 0x1008c134
jmp 0x1003cda3
mov eax, 0x1008c138
jmp 0x1003cda3
mov eax, 0x1008c13c
jmp 0x1003cda3
mov eax, 0x1008c140
jmp 0x1003cda3
mov eax, 0x1008c110
jmp 0x1003cda3
mov eax, 0x1008c144
jmp 0x1003cda3
mov eax, 0x1008c148
jmp 0x1003cda3
mov eax, 0x1008c14c
jmp 0x1003cda3
mov eax, 0x1008c150
jmp 0x1003cda3
mov eax, 0x1008c154
jmp 0x1003cda3
mov eax, 0x1008c158
jmp 0x1003cda3
mov eax, 0x1008c15c
jmp 0x1003cda3
mov eax, 0x1008c160
jmp 0x1003cda3
mov eax, 0x1008c164
jmp 0x1003cda3
mov eax, 0x1008c168
jmp 0x1003cda3
mov eax, 0x1008c16c
jmp 0x1003cda3
mov eax, 0x1008c170
jmp 0x1003cda3
mov eax, 0x1008c174
jmp 0x1003cda3
mov eax, 0x1008c178
jmp 0x1003cda3
mov eax, 0x1008c17c
jmp 0x1003cda3
mov eax, 0x1008c180
jmp 0x1003cda3
mov eax, 0x1008c184
jmp 0x1003cda3
mov eax, 0x1008c188
jmp 0x1003cda3
mov eax, 0x1008c18c
jmp 0x1003cda3
mov eax, 0x1008c190
jmp 0x1003cda3
mov eax, 0x1008c194
jmp 0x1003cda3
mov eax, 0x1008c198
jmp 0x1003cda3
mov eax, 0x1008c19c
jmp 0x1003cda3
cmp ecx, 0x407
mov eax, 0x1008c1a0
mov edx, 0x1008c1a4
cmovne eax, edx
jmp 0x1003cda3
cmp eax, 0x200
ja 0x1003cac6
je 0x1003cabc
add eax, 0xfffffeff
cmp eax, 0x18
ja case.default.0x1003ccc9
jmp dword [eax*4 + 0x1003cec0]
mov eax, 0x1008c1a8
jmp 0x1003cda3
mov eax, str.Num_1
jmp 0x1003cda3
mov eax, str.Num_2
jmp 0x1003cda3
mov eax, str.Num_3
jmp 0x1003cda3
mov eax, str.Num_4
jmp 0x1003cda3
mov eax, str.Num_5
jmp 0x1003cda3
mov eax, str.Num_6
jmp 0x1003cda3
mov eax, str.Num_7
jmp 0x1003cda3
mov eax, str.Num_8
jmp 0x1003cda3
mov eax, str.Num_9
jmp 0x1003cda3
mov eax, 0x1008c1f8
jmp 0x1003cda3
mov eax, 0x1008c200
jmp 0x1003cda3
mov eax, str.Num_
jmp 0x1003cda3
mov eax, str.Num__
jmp 0x1003cda3
mov eax, str.Num_Del
jmp 0x1003cda3
cmp ecx, 0x407
mov eax, 0x1008c220
mov edx, 0x10087d74
cmovne eax, edx
jmp 0x1003cda3
mov eax, 0x1008c224
jmp 0x1003cda3
cmp ecx, 0x407
mov eax, 0x1008c228
mov edx, 0x1008c22c
cmovne eax, edx
jmp 0x1003cda3
mov eax, 0x1008a164
jmp 0x1003cda3
cmp ecx, 0x407
mov eax, 0x1008c230
mov edx, 0x1008a168
cmovne eax, edx
jmp 0x1003cda3
cmp ecx, 0x407
mov eax, 0x1008c234
mov edx, 0x1008a160
cmovne eax, edx
jmp 0x1003cda3
cmp ecx, 0x407
mov eax, 0x1008c238
mov edx, 0x1008c23c
cmovne eax, edx
jmp 0x1003cda3
mov eax, 0x1008af04
jmp 0x1003cda3
mov eax, 0x10087d28
jmp 0x1003cda3
cmp ecx, 0x407
mov eax, 0x1008c240
mov edx, 0x1008c244
cmovne eax, edx
jmp 0x1003cda3
mov eax, 0x1008c248
jmp 0x1003cda3
cmp eax, 0x300
ja 0x1003cbaa
je 0x1003cba0
add eax, 0xfffffdff
cmp eax, 0x11
ja case.default.0x1003ccc9
jmp dword [eax*4 + 0x1003cf24]
mov eax, str.Enter
jmp 0x1003cda3
mov eax, str.Backspace
jmp 0x1003cda3
mov eax, 0x1008c260
jmp 0x1003cda3
mov eax, str.Left
jmp 0x1003cda3
mov eax, 0x1008c26c
jmp 0x1003cda3
mov eax, str.Right
jmp 0x1003cda3
mov eax, str.Down
jmp 0x1003cda3
mov eax, str.Insert
jmp 0x1003cda3
mov eax, str.Delete
jmp 0x1003cda3
mov eax, str.Home
jmp 0x1003cda3
mov eax, 0x1008c298
jmp 0x1003cda3
mov eax, str.Page_Up
jmp 0x1003cda3
mov eax, str.Page_Down
jmp 0x1003cda3
mov eax, str.Caps_Lock
jmp 0x1003cda3
mov eax, str.Num_Lock
jmp 0x1003cda3
mov eax, str.Scroll_Lock
jmp 0x1003cda3
mov eax, str.Pause
jmp 0x1003cda3
mov eax, str.Print_Screen
jmp 0x1003cda3
mov eax, 0x1008c2ec
jmp 0x1003cda3
cmp eax, 0x1000
ja 0x1003ccbb
je 0x1003cc3e
add eax, 0xfffffcff
cmp eax, 0xa
ja case.default.0x1003ccc9
jmp dword [eax*4 + 0x1003cf6c]
mov eax, 0x1008c2f0
jmp 0x1003cda3
mov eax, 0x1008c2f4
jmp 0x1003cda3
mov eax, 0x1008c2f8
jmp 0x1003cda3
mov eax, 0x1008c2fc
jmp 0x1003cda3
mov eax, 0x1008c300
jmp 0x1003cda3
mov eax, 0x1008c304
jmp 0x1003cda3
mov eax, 0x1008c308
jmp 0x1003cda3
mov eax, 0x1008c30c
jmp 0x1003cda3
mov eax, 0x1008c310
jmp 0x1003cda3
mov eax, 0x1008c314
jmp 0x1003cda3
mov eax, 0x1008c318
jmp 0x1003cda3
lea eax, [ebp - 0x28]
push 0x4a
push eax
call fcn.1003ed90
add esp, 8
mov edi, eax
mov esi, 0x100afb70
cmp edi, 0x100afb70
je 0x1003cc95
cmp dword [0x100afb84], 0x10
jb 0x1003cc72
push dword [0x100afb70]
call fcn.10060d01
add esp, 4
push edi
mov ecx, esi
mov dword [0x100afb84], 0xf
mov dword [0x100afb80], 0
mov byte [0x100afb70], 0
call fcn.10007ff0
cmp dword [ebp - 0x14], 0x10
jb 0x1003cca6
push dword [ebp - 0x28]
call fcn.10060d01
add esp, 4
cmp dword [0x100afb84], 0x10
cmovae esi, dword [0x100afb70]
mov eax, esi
jmp 0x1003cda3
add eax, 0xffffefff
cmp eax, 5
ja case.default.0x1003ccc9
jmp dword [eax*4 + 0x1003cf98]
lea eax, [ebp - 0x28]
push 0x3f
push eax
call fcn.1003ed90
add esp, 8
mov edi, eax
jmp 0x1003cc4e
lea eax, [ebp - 0x28]
push 2
push eax
call fcn.1003ed90
add esp, 8
mov edi, eax
jmp 0x1003cc4e
lea eax, [ebp - 0x28]
push 0x74
push eax
call fcn.1003ed90
add esp, 8
mov edi, eax
jmp 0x1003cc4e
lea eax, [ebp - 0x28]
push 0x76
push eax
call fcn.1003ed90
add esp, 8
mov edi, eax
jmp 0x1003cc4e
lea eax, [ebp - 0x28]
push 0x2c
push eax
call fcn.1003ed90
add esp, 8
mov edi, eax
jmp 0x1003cc4e
lea eax, [ebp - 0x40]
push 0x63
push eax
call fcn.1003ed90
add esp, 8
mov edi, eax
mov esi, 0x100afb70
cmp edi, esi
je 0x1003cd8c
cmp dword [0x100afb84], 0x10
jb 0x1003cd69
push dword [0x100afb70]
call fcn.10060d01
add esp, 4
push edi
mov ecx, esi
mov dword [0x100afb84], 0xf
mov dword [0x100afb80], 0
mov byte [0x100afb70], 0
call fcn.10007ff0
cmp dword [ebp - 0x2c], 0x10
jb 0x1003cca6
push dword [ebp - 0x40]
jmp 0x1003cc9e
mov eax, 0x10087d1c
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10060c02
mov esp, ebp
pop ebp
ret