Function at 0x100298d9
Capabilities:
Get keyboard layout

Disassembly:
mov eax, 0x1005f09d
call fcn.1005dcd4
sub esp, 0x74
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x40], edx
mov byte [ebp - 0x14], cl
je 0x10029923
test cl, cl
je 0x1002990c
push 0x14cb
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
jmp 0x10029cbf
push 0
push 0x1d50
push 0xfda
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
jmp 0x10029cbf
mov dword [ebp - 0x20], 0x60cd
xor ebx, ebx
cmp dword [ebp - 0x20], 0x6191
jle 0x10029963
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov edi, esi
mov esi, 0x4b9e
mov eax, edi
mov ecx, 0x10079b38
cdq
push edx
push eax
call fcn.10006e46
dec edi
dec esi
jne 0x10029941
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x5eeb
jl 0x1002993a
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x5fb2
jge 0x1002997e
mov edx, str.swi_yevtay_efuxdqt_rigxpko_cevkc_aeozicp_kzqzilbx_yne
mov ecx, 0x10079b38
call fcn.10009b61
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x14], 0
je 0x100299e8
mov esi, dword [ebp + 0x18]
xor edi, edi
mov eax, dword [ebp + 8]
inc edi
mov ecx, edi
xor edx, edx
mov eax, dword [eax]
mov eax, dword [esi]
mov eax, dword [esi]
mov eax, dword [esi]
sub ecx, eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
cmp ecx, eax
sete dl
cmp dword [esi], edx
jge 0x100299b1
cmp dword [esi], ebx
jne 0x100299b3
mov edi, ebx
mov eax, dword [esi]
xor ecx, ecx
cmp edi, eax
mov eax, dword [ebp + 0x1c]
setg cl
mov dword [eax], ecx
jmp 0x10029cbf
mov eax, dword [ebp + 0x20]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x30], eax
movzx eax, word [eax]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x30]
push eax
call fcn.1002c28f
xor edi, edi
mov dword [ebp - 0x24], ebx
pop ecx
inc edi
mov esi, 0x657a
mov dword [ebp - 0x48], 0x4bc662a2
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x44], 0x6371
mov dword [ebp - 0x28], 0x270e7ad5
push 4
call fcn.10001cd0
mov dword [ebp - 4], 2
lea eax, [ebp - 0x58]
mov dword [ebp - 0x2c], edi
lea edx, [ebp - 0x6c]
mov dword [ebp - 0x34], 0x85d0
mov dword [ebp - 0x38], 0xfffffffe
push 0x5d0b
mov dword [ebp - 0x7c], esi
push ecx
mov dword [ebp - 0x78], esi
mov ecx, 0x3344
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
push eax
call fcn.1002c2f4
pop ecx
pop ecx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x6272
push ebx
push ecx
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x6c]
call fcn.10028fbd
add esp, 0x20
cmp dword [ebp - 0x28], ebx
jne 0x10029aec
mov ecx, dword [ebp - 0x38]
xor ebx, ebx
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov eax, dword [ebp - 0x6c]
setle bl
xor ecx, ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x78]
imul eax, ebx
cmp eax, edx
setg cl
xor ebx, ebx
cmp ecx, edx
jne 0x10029abc
mov eax, ebx
cmp dword [ebp - 0x7c], ebx
je 0x10029abe
mov eax, edi
mov esi, dword [ebp - 0x6c]
xor edx, edx
imul eax, eax, 0x1153
sub eax, 0x1153
cmp eax, dword [esi + 8]
mov eax, dword [ebp - 0x34]
setl dl
xor ecx, ecx
cmp eax, edx
setne cl
imul eax, ecx, 0x5412
cmp edi, eax
sbb eax, eax
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x2c], 0xbc6c2db6
or dword [ebp - 4], 0xffffffff
call fcn.10001d53
mov eax, dword [ebp - 0x24]
mov dl, 0x74
mov esi, dword [ebp - 0x30]
mov cl, byte [eax + esi]
call fcn.100324d2
mov ecx, dword [ebp - 0x24]
mov byte [ecx + esi], al
inc ecx
mov dword [ebp - 0x24], ecx
mov esi, 0x657a
cmp ecx, 2
jb 0x10029a0c
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x1c], 0x6a9ef72d
mov dword [ebp - 0x54], 0x9f3c5a4a
mov dword [ebp - 0x20], ebx
jmp 0x10029c9c
push 0x21c8
push 0x5996
push ebx
push ebx
push 0x4cec
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0x8b10
push 0x1b30
push eax
mov edx, 0x63c1
lea ecx, [ebp - 0x1c]
call fcn.1002914f
mov eax, dword [ebp - 0x18]
add esp, 0x1c
cmp dword [ebp - 0x20], ebx
je 0x10029bb4
push ebx
push edi
push 0x6a0b
push 0x17bf
push ebx
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0xd65121ac
push eax
push 0x3275
mov edx, 0x3099
mov ecx, 0x20fe
call fcn.1002c6ba
add esp, 0x1c
jmp 0x10029c99
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x24], ebx
jmp 0x10029bce
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x60], 0x13281d21
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x10029bc0
mov dword [ebp - 0x18], ebx
jmp 0x10029c8d
mov byte [ebp + 0x13], bl
lea edx, [ebp + 0x13]
push 0x471
xor cl, cl
call fcn.1002a896
pop ecx
mov dword [ebp - 0x1c], ebx
jmp 0x10029c81
mov dword [ebp - 0x24], 0x858f9c25
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x24], ebx
jl 0x10029c7e
mov dword [ebp - 0x50], 0xfffffffa
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x18]
add ecx, 0x1c2b8ad2
mov eax, dword [ebp + eax*4 - 0x60]
add eax, ecx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setle dl
cmp edx, dword [ebp - 0x38]
jg 0x10029c5a
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x60], ebx
jne 0x10029c5a
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x60]
test eax, eax
mov eax, dword [ebp - 0x50]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setle cl
mov dword [ebp + eax*4 - 0x60], ecx
dec dword [ebp - 0x24]
jns 0x10029c09
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jle 0x10029bf7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x10029bdc
mov eax, dword [ebp - 0x38]
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff5
jge 0x10029b47
push ebx
lea edx, [ebp - 0x54]
mov ecx, 0x123b
call fcn.1002b41e
mov ax, word [ebp - 0x3c]
pop ecx
mov ecx, dword [ebp + 0xc]
mov word [ecx], ax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret