Function at 0x404d30
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x581e00]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0xe8]
push ecx
push 0x20019
push 0
push str.SystemCurrentControlSetControlKeyboard_Layouts
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0xf0], eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x404d80
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050cbf9
mov esp, ebp
pop ebp
ret 4
push esi
mov esi, 0xe0020804
jmp 0x404d90
mov edx, dword [ebp - 0xe8]
add esi, 0x10000
push esi
push edx
call fcn.00404ae0
test eax, eax
jne 0x404d90
push esi
lea eax, [ebp - 0xe0]
push str._08X
push eax
call fcn.0050cc59
add esp, 0xc
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, dword [ebp - 0xe8]
lea edx, [ebp - 0xe4]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
lea eax, [ebp - 0xe0]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x404e0f
mov edx, dword [ebp - 0xe8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050cbf9
mov esp, ebp
pop ebp
ret 4
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
push edi
push str.singlePY.ime
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push eax
mov eax, dword [ebp - 0xe4]
push str.singlePY.ime
push 1
push 0
push str.IME_File
push eax
call edi
push str.kbdus.dll
call esi
mov ecx, dword [ebp - 0xe4]
push eax
push str.kbdus.dll
push 1
push 0
push str.Layout_File
push ecx
call edi
mov edx, dword [0x560de0]
mov eax, dword [0x560de4]
mov ecx, dword [0x560de8]
mov dword [ebp - 0x7c], edx
mov edx, dword [0x560dec]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x78], eax
mov ax, word [0x560df0]
mov dword [ebp - 0x74], ecx
mov cl, byte [0x560df2]
lea edx, [ebp - 0x7c]
push edx
mov word [ebp - 0x6c], ax
mov byte [ebp - 0x6a], cl
call esi
mov ecx, dword [ebp - 0xe4]
push eax
lea eax, [ebp - 0x7c]
push eax
push 1
push 0
push str.Layout_Text
push ecx
call edi
mov edx, dword [ebp - 0xe4]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call ebx
mov eax, dword [ebp - 0xe8]
push eax
call ebx
mov ebx, dword [ebp - 0xf0]
lea ecx, [ebp - 0xe0]
push ecx
add ebx, 0xcc
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0xec]
push edx
push 0x2001f
push 0
push str.Keyboard_Layoutpreload
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x404f17
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050cbf9
mov esp, ebp
pop ebp
ret 4
xor eax, eax
lea esp, [esp]
mov ecx, dword [ebp - 0xec]
inc eax
push eax
mov dword [ebp - 0xf4], eax
call fcn.00404c20
test eax, eax
mov eax, dword [ebp - 0xf4]
jne 0x404f20
push eax
lea ecx, [ebp - 0x18]
push 0x560f34
push ecx
call fcn.0050cc59
add esp, 0xc
push ebx
call esi
push eax
mov eax, dword [ebp - 0xec]
push ebx
push 1
push 0
lea edx, [ebp - 0x18]
push edx
push eax
call edi
mov ecx, dword [ebp - 0xec]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0xf0]
lea edx, [ebp - 0x18]
push edx
add eax, 0xb8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x10
lea ecx, [ebp - 0xe0]
push ecx
call dword [sym.imp.USER32.dll_LoadKeyboardLayoutA]
mov ecx, dword [ebp - 4]
pop edi
pop ebx
xor ecx, ebp
mov eax, 1
pop esi
call fcn.0050cbf9
mov esp, ebp
pop ebp
ret 4