Function at 0x40ecf2
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa60
mov eax, dword [0x5b9460]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x40ef4f
cmp byte [edi + 0x228], 0
je 0x40ef4f
push ebx
push esi
xor ecx, ecx
xor eax, eax
push 0x206
mov word [ebp - 0x248], ax
push ecx
lea eax, [ebp - 0x246]
push eax
mov dword [ebp - 0xa5c], ecx
mov dword [ebp - 0xa54], ecx
mov dword [ebp - 0xa50], ecx
call fcn.00531ed0
movzx eax, word [edi + 0x21c]
push eax
lea eax, [ebp - 0x40]
push str._08x
push eax
call fcn.00532980
mov esi, dword [sym.imp.ole32.dll_StringFromCLSID]
add esp, 0x18
lea eax, [ebp - 0xa5c]
push eax
lea eax, [edi + 0x244]
push eax
call esi
lea eax, [ebp - 0xa54]
push eax
lea eax, [edi + 0x234]
push eax
call esi
lea eax, [ebp - 0xa50]
push eax
lea eax, [edi + 0x254]
push eax
call esi
movzx eax, word [edi + 0x21c]
push eax
lea eax, [ebp - 0xa48]
push str.SoftwareMicrosoftCTFAssemblies0x_08x
push eax
call fcn.00532980
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
add esp, 0xc
lea eax, [ebp - 0xa4c]
push eax
lea eax, [ebp - 0xa48]
push eax
push SysReAllocStringLen
call esi
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x40ee82
lea eax, [ebp - 0xa58]
push eax
push dword [ebp - 0xa5c]
push dword [ebp - 0xa4c]
call esi
test eax, eax
jne 0x40ee7a
push dword [ebp - 0xa54]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0xa54]
push 1
push 0
push str.Default
push dword [ebp - 0xa58]
call ebx
push dword [ebp - 0xa50]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0xa50]
push 1
push 0
push str.Profile
push dword [ebp - 0xa58]
call ebx
push 4
lea eax, [ebp - 0xa60]
push eax
push 4
push 0
push str.KeyboardLayout
push dword [ebp - 0xa58]
call ebx
push dword [ebp - 0xa58]
call edi
push dword [ebp - 0xa4c]
call edi
push dword [ebp - 0xa50]
lea eax, [ebp - 0x248]
push dword [ebp - 0xa54]
push str.0804:_s_s
push eax
call fcn.00532980
add esp, 0x10
lea eax, [ebp - 0xa4c]
push eax
push str.Control_PanelInternationalUser_Profile
push SysReAllocStringLen
call esi
test eax, eax
jne 0x40ef2f
push 5
pop ecx
mov esi, str.zh_Hans_CN
lea edi, [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [ebp - 0x16]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x2c]
push eax
call esi
lea eax, [eax*2 + 2]
push eax
lea eax, [ebp - 0x2c]
push eax
push 7
push 0
push str.Languages
push dword [ebp - 0xa4c]
call ebx
lea eax, [ebp - 0x248]
push eax
call esi
lea eax, [eax*2 + 2]
push eax
lea eax, [ebp - 0x248]
push eax
push 1
push 0
push str.InputMethodOverride
push dword [ebp - 0xa4c]
call ebx
push dword [ebp - 0xa4c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0xa5c]
mov esi, dword [sym.imp.ole32.dll_CoTaskMemFree]
call esi
push dword [ebp - 0xa54]
call esi
push dword [ebp - 0xa50]
call esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.00532a3d
leave
ret 4