Function at 0x40ac51
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe68
mov eax, dword [0x43c0c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov ebx, 0x208
mov dword [ebp - 0xe48], eax
push ebx
xor esi, esi
mov dword [ebp - 0xe68], ecx
lea eax, [ebp - 0x414]
push esi
push eax
call fcn.00412a00
push ebx
lea eax, [ebp - 0x61c]
push esi
push eax
call fcn.00412a00
push str.Keyboard_LayoutPreload
mov ebx, 0x42b634
lea eax, [ebp - 0x414]
push ebx
push eax
call fcn.0040568b
push str.SystemCurrentControlSetControlKeyboard_Layouts_
lea eax, [ebp - 0x61c]
push ebx
push eax
call fcn.0040568b
add esp, 0x30
lea eax, [ebp - 0xe4c]
mov ebx, esi
push eax
lea eax, [ebp - 0x414]
push eax
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x40af02
push edi
mov edi, esi
push 0x208
lea eax, [ebp - 0xe3c]
inc edi
push esi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0x20c]
mov dword [ebp - 0xe40], 1
push esi
push eax
mov dword [ebp - 0xe54], 0x104
call fcn.00412a00
add esp, 0x18
mov dword [ebp - 0xe50], 0x104
lea eax, [ebp - 0xe50]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0xe40]
push eax
push esi
lea eax, [ebp - 0xe54]
push eax
lea eax, [ebp - 0xe3c]
push eax
push ebx
push dword [ebp - 0xe4c]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x40aef5
push 0x208
lea eax, [ebp - 0x824]
inc ebx
push esi
push eax
call fcn.00412a00
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0x824]
push str._s_s
push eax
call fcn.0040568b
add esp, 0x1c
lea eax, [ebp - 0xe44]
push eax
lea eax, [ebp - 0x824]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x40aee9
push 0x208
lea eax, [ebp - 0xc34]
push esi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0xa2c]
mov dword [ebp - 0xe58], 0x104
push esi
push eax
call fcn.00412a00
add esp, 0x18
mov dword [ebp - 0xe5c], 0x104
lea eax, [ebp - 0xe58]
push eax
lea eax, [ebp - 0xc34]
push eax
lea eax, [ebp - 0xe40]
push eax
push esi
push str.Layout_text
push dword [ebp - 0xe44]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0xe5c]
push eax
lea eax, [ebp - 0xa2c]
push eax
lea eax, [ebp - 0xe40]
push eax
push esi
push str.Ime_File
push dword [ebp - 0xe44]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0xa2c]
push eax
call fcn.0041926a
push dword [ebp - 0xe48]
mov esi, eax
mov dword [ebp - 0xe60], esi
call fcn.004156a2
pop ecx
pop ecx
test eax, eax
je 0x40ae7f
push dword [ebp - 0xe48]
push esi
call fcn.00418260
pop ecx
pop ecx
test eax, eax
je 0x40aee7
push 0xf0
call fcn.0040e0a1
mov esi, eax
lea eax, [ebp - 0x20c]
push eax
push 0x42b634
push esi
mov dword [ebp - 0xe64], esi
call fcn.0040568b
lea eax, [ebp - 0xc34]
push eax
lea eax, [esi + 0x8c]
push 0x42b634
push eax
call fcn.0040568b
push dword [ebp - 0xe60]
lea eax, [esi + 0x28]
push 0x42b634
push eax
call fcn.0040568b
add esp, 0x28
lea eax, [ebp - 0xe64]
push eax
mov eax, dword [ebp - 0xe68]
mov ecx, dword [eax + 0x24]
call fcn.0040c753
xor esi, esi
cmp edi, 0x2710
jl 0x40acea
push dword [ebp - 0xe4c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0040e0e7
mov esp, ebp
pop ebp
ret 4