Function at 0x1003d49b
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10089696
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x170
push esi
push 2
lea ecx, [ebp - 0x13c]
call fcn.10010227
and dword [ebp - 4], 0
mov dword [ebp - 0x1c], 0
jmp 0x1003d4db
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 1
jge 0x1003d4ee
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x48], 0xffffffff
jmp 0x1003d4d4
mov dword [ebp - 0x1c], 0
jmp 0x1003d4fe
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x1003d51a
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x13c]
call fcn.1001026e
mov dword [eax], 0xfffffffb
jmp 0x1003d4f7
push 4
pop eax
imul eax, eax, 0
mov dword [ebp + eax - 0x48], 0
jmp 0x1003d53f
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x48]
inc eax
push 4
pop ecx
imul ecx, ecx, 0
mov dword [ebp + ecx - 0x48], eax
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x48], 0xd
jne 0x1003d5ae
mov dword [ebp - 0x40], 0x457102d1
mov byte [ebp - 0x22], 0
movzx eax, byte [ebp - 0x22]
test eax, eax
je 0x1003d567
push 0
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [ebp - 0x40], 0xffffffe3
jmp 0x1003d577
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 1
jge 0x1003d5a9
push 0
lea ecx, [ebp - 0x13c]
call fcn.1001026e
mov dword [eax], 0x33c63384
mov byte [ebp - 0x21], 0
movzx eax, byte [ebp - 0x21]
test eax, eax
je 0x1003d5a7
push 0x1e40
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
jmp 0x1003d570
jmp 0x1003d52a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x13c]
call fcn.10010269
movzx eax, byte [ebp + 0x10]
test eax, eax
je 0x1003dd8a
mov dword [ebp - 0x30], 1
mov dword [ebp - 0xd8], 4
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x108], 0x88f4f368
mov dword [ebp - 0x140], 0xfffffff6
mov dword [ebp - 0x38], 0
jmp 0x1003d605
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 3
jge 0x1003d61b
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0x168], 0x2bd7b1c2
jmp 0x1003d5fe
cmp dword [ebp - 0x30], 0
je 0x1003d633
cmp dword [ebp - 0x30], 0
je 0x1003d633
mov dword [ebp - 0x88], 1
jmp 0x1003d63a
and dword [ebp - 0x88], 0
cmp dword [ebp - 0x88], 0
je 0x1003d651
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x64], eax
jl 0x1003d665
mov dword [ebp - 0x118], 1
jmp 0x1003d66c
and dword [ebp - 0x118], 0
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xf4], eax
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0xf4]
mov dword [ebp + eax - 0x168], ecx
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x168]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0x14], 0x5c68ec0a
mov dword [ebp - 0x70], 3
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x44], 0
jmp 0x1003d6c9
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 4
jge 0x1003d6df
mov eax, dword [ebp - 0x44]
mov dword [ebp + eax*4 - 0x17c], 5
jmp 0x1003d6c2
mov dword [ebp - 0x14], 0xffffffe7
jmp 0x1003d6ef
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffe9
je 0x1003da0d
push 3
lea ecx, [ebp - 0xc4]
call fcn.10010227
mov dword [ebp - 4], 1
push 1
lea ecx, [ebp - 0x114]
call fcn.10010227
mov byte [ebp - 4], 2
mov dword [ebp - 0x4c], 0xffffffff
push 3
lea ecx, [ebp - 0x130]
call fcn.10010227
mov byte [ebp - 4], 3
mov dword [ebp - 0xe0], 0xf5b50694
mov dword [ebp - 0x10], 0
jmp 0x1003d750
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x1003d76c
push dword [ebp - 0x10]
lea ecx, [ebp - 0xc4]
call fcn.1001026e
mov dword [eax], 0xe75cb554
jmp 0x1003d749
mov dword [ebp - 0x10], 0
jmp 0x1003d77c
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jge 0x1003d798
push dword [ebp - 0x10]
lea ecx, [ebp - 0x114]
call fcn.1001026e
mov dword [eax], 0xfffd
jmp 0x1003d775
mov dword [ebp - 0x10], 0
jmp 0x1003d7a8
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x1003d7c4
push dword [ebp - 0x10]
lea ecx, [ebp - 0x130]
call fcn.1001026e
mov dword [eax], 1
jmp 0x1003d7a1
push 2
lea ecx, [ebp - 0xc4]
call fcn.1001026e
mov esi, eax
push 0
lea ecx, [ebp - 0x114]
call fcn.1001026e
mov ecx, dword [esi]
cmp ecx, dword [eax]
jle 0x1003d7ef
mov dword [ebp - 0x60], 1
jmp 0x1003d7f3
and dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x60], eax
jle 0x1003d807
mov dword [ebp - 0xa4], 1
jmp 0x1003d80e
and dword [ebp - 0xa4], 0
cmp dword [ebp - 0xa4], 1
jg 0x1003d820
mov dword [ebp - 0x6c], 1
jmp 0x1003d824
and dword [ebp - 0x6c], 0
cmp dword [ebp - 0x6c], 0xffff
ja 0x1003d839
mov dword [ebp - 0x94], 1
jmp 0x1003d840
and dword [ebp - 0x94], 0
push 0
lea ecx, [ebp - 0xc4]
call fcn.1001026e
mov ecx, dword [ebp - 0x94]
sub ecx, dword [eax]
je 0x1003d872
push 1
lea ecx, [ebp - 0xc4]
call fcn.1001026e
cmp dword [eax], 0
je 0x1003d872
mov dword [ebp - 0x74], 1
jmp 0x1003d876
and dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x74], eax
jg 0x1003d890
cmp dword [ebp - 0x14], 0
jne 0x1003d890
mov dword [ebp - 0xb4], 1
jmp 0x1003d897
and dword [ebp - 0xb4], 0
push 0
lea ecx, [ebp - 0x114]
call fcn.1001026e
mov ecx, dword [ebp - 0xb4]
cmp ecx, dword [eax]
jg 0x1003d8ba
mov dword [ebp - 0xc8], 1
jmp 0x1003d8c1
and dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x154], eax
push 0
lea ecx, [ebp - 0xc4]
call fcn.1001026e
cmp dword [eax], 0xffff
jb 0x1003d8e5
cmp dword [ebp - 0x14], 0
je 0x1003d8f4
cmp dword [ebp - 0x14], 0
je 0x1003d8f4
mov dword [ebp - 0x7c], 1
jmp 0x1003d8f8
and dword [ebp - 0x7c], 0
cmp dword [ebp - 0x7c], 1
jle 0x1003d910
cmp dword [ebp - 0x14], 0
je 0x1003d910
mov dword [ebp - 0x9c], 1
jmp 0x1003d917
and dword [ebp - 0x9c], 0
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x9c], eax
jge 0x1003d92e
mov dword [ebp - 0x84], 1
jmp 0x1003d935
and dword [ebp - 0x84], 0
imul eax, dword [ebp - 0x84], 0xa88f
cmp eax, dword [ebp - 0x14]
jne 0x1003d950
mov dword [ebp - 0xac], 1
jmp 0x1003d957
and dword [ebp - 0xac], 0
push 2
lea ecx, [ebp - 0x130]
call fcn.1001026e
mov ecx, dword [ebp - 0xac]
mov dword [eax], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x148], eax
push 0
lea ecx, [ebp - 0xc4]
call fcn.1001026e
cmp dword [ebp - 0x14], 0xc9d6c840
je 0x1003d9a0
mov dword [ebp - 0xf8], 1
jmp 0x1003d9a7
and dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x150], eax
push 2
lea ecx, [ebp - 0x130]
call fcn.1001026e
mov esi, dword [eax]
push 0
lea ecx, [ebp - 0x114]
call fcn.1001026e
mov eax, dword [eax]
lea eax, [esi + eax - 0x2c67]
mov dword [ebp - 0xe0], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x130]
call fcn.10010269
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x114]
call fcn.10010269
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc4]
call fcn.10010269
jmp 0x1003d6e8
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x158], eax
push 4
pop eax
imul eax, eax, 3
mov ecx, dword [ebp - 0x50]
cmp dword [ebp + eax - 0x17c], ecx
jge 0x1003da34
mov dword [ebp - 0x8c], 1
jmp 0x1003da3b
and dword [ebp - 0x8c], 0
push 4
pop eax
shl eax, 1
imul ecx, dword [ebp - 0x8c], 0x1dd6
cmp dword [ebp + eax - 0x17c], ecx
je 0x1003da5f
mov dword [ebp - 0x100], 1
jmp 0x1003da66
and dword [ebp - 0x100], 0
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x14], 0
jne 0x1003da7e
mov dword [ebp - 0x5c], 1
jmp 0x1003da82
and dword [ebp - 0x5c], 0
push 4
pop eax
shl eax, 1
mov ecx, dword [ebp - 0x5c]
add ecx, 3
cmp dword [ebp + eax - 0x17c], ecx
jne 0x1003da9f
mov dword [ebp - 0x68], 1
jmp 0x1003daa3
and dword [ebp - 0x68], 0
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xd4], eax
push 3
lea ecx, [ebp - 0x124]
call fcn.10010227
mov dword [ebp - 4], 4
mov dword [ebp - 0xe8], 0xa4d0
mov dword [ebp - 0x78], 0x2a727599
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x3c], 0
jmp 0x1003daf2
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
jge 0x1003db0e
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x124]
call fcn.1001026e
mov dword [eax], 0xe9d05ba7
jmp 0x1003daeb
mov byte [ebp - 0x1e], 0
movzx eax, byte [ebp - 0x1e]
test eax, eax
je 0x1003db29
push 0
push 0x1138
push 0
call dword [sym.imp.GDI32.dll_ExtCreateRegion]
push 2
lea ecx, [ebp - 0x124]
call fcn.1001026e
mov ecx, dword [ebp - 0xe8]
cmp dword [eax], ecx
jge 0x1003db49
mov dword [ebp - 0x80], 1
jmp 0x1003db4d
and dword [ebp - 0x80], 0
push 2
lea ecx, [ebp - 0x124]
call fcn.1001026e
mov eax, dword [eax]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0x80], eax
jl 0x1003db70
mov dword [ebp - 0x58], 1
jmp 0x1003db74
and dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x104], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x124]
call fcn.10010269
mov dword [ebp - 0x18], 0xfffffffd
mov dword [ebp - 0x18], 0xffffffed
jmp 0x1003dba3
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xfffffffb
jg 0x1003dd3d
mov dword [ebp - 0x28], 0xfffffffa
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x28], eax
jl 0x1003dbd8
mov dword [ebp - 0x90], 1
jmp 0x1003dbdf
and dword [ebp - 0x90], 0
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xa82a
jge 0x1003dbfd
mov dword [ebp - 0x98], 1
jmp 0x1003dc04
and dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x98]
jge 0x1003dc1b
mov dword [ebp - 0xa0], 1
jmp 0x1003dc22
and dword [ebp - 0xa0], 0
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0xa0], eax
jg 0x1003dc39
mov dword [ebp - 0xa8], 1
jmp 0x1003dc40
and dword [ebp - 0xa8], 0
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0xa8], eax
jle 0x1003dc57
mov dword [ebp - 0xb0], 1
jmp 0x1003dc5e
and dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0xb0], eax
je 0x1003dc7e
mov eax, 0x421e
test eax, eax
je 0x1003dc7e
mov dword [ebp - 0xb8], 1
jmp 0x1003dc85
and dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0xb8]
jne 0x1003dc9f
cmp dword [ebp - 0x28], 0
jne 0x1003dc9f
and dword [ebp - 0xf0], 0
jmp 0x1003dca9
mov dword [ebp - 0xf0], 1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x18], 0
je 0x1003dcf6
cmp dword [ebp - 0x54], 0
je 0x1003dcf6
mov dword [ebp - 0xfc], 0x62f63069
mov byte [ebp - 0x20], 0
movzx eax, byte [ebp - 0x20]
test eax, eax
je 0x1003dce6
push 0x24fb
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
cmp dword [ebp - 0xfc], 0
je 0x1003dcf4
jmp 0x1003db9c
jmp 0x1003dd38
mov byte [ebp - 0x1d], 0
movzx eax, byte [ebp - 0x1d]
test eax, eax
je 0x1003dd16
push 0
push 0x1829
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov byte [ebp - 0x1f], 0
movzx eax, byte [ebp - 0x1f]
test eax, eax
je 0x1003dd38
push 0
push 0
push 0x1586
push 0x23c
push 0
call dword [sym.imp.USER32.dll_InsertMenuA]
jmp 0x1003db9c
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x2c]
mov dword [eax], 0
jmp 0x1003dd68
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 4
jge 0x1003dd88
mov eax, dword [ebp - 0x2c]
push dword [eax]
mov ecx, dword [ebp - 0xdc]
call fcn.1001026e
mov dword [eax], 0x149f
jmp 0x1003dd5d
jmp 0x1003dde7
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x1003ddc7
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x34]
mov dword [ecx], eax
mov eax, dword [ebp - 0x34]
cmp dword [eax], 4
jge 0x1003dde7
mov eax, dword [ebp - 0x34]
push dword [eax]
mov ecx, dword [ebp - 0xcc]
call fcn.1001026e
mov dword [eax], 0x3ff8
jmp 0x1003ddbc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret