Function at 0x4084b0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x42403b
push eax
mov eax, 0x1420
mov dword fs:[0], esp
call fcn.0041adb0
push ebx
push ebp
push esi
lea eax, [esp + 0xc]
push edi
mov edi, ecx
mov ecx, dword [esp + 0x1440]
push eax
xor esi, esi
push 0x20019
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIMEJPMSIME
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408824
mov ecx, dword [esp + 0x10]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.option3
push ecx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
mov ebp, 3
jne 0x408588
mov eax, dword [esp + 0x18]
test al, 1
je 0x40853c
mov dword [edi + 0x10ac], esi
jmp 0x408546
mov dword [edi + 0x10ac], 1
and eax, 0x3000
cmp ax, si
jne 0x408558
mov dword [edi + 0x10d4], esi
jmp 0x408588
cmp ax, 0x1000
jne 0x40856a
mov dword [edi + 0x10d4], 1
jmp 0x408588
cmp ax, 0x2000
jne 0x40857c
mov dword [edi + 0x10d4], 2
jmp 0x408588
cmp ax, 0x3000
jne 0x408588
mov dword [edi + 0x10d4], ebp
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.FullEditableEN
push ecx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x4085b6
mov edx, dword [esp + 0x18]
mov dword [edi + 0x10c4], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push esi
push esi
push str.option1
push edx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x40868d
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
mov eax, ecx
and eax, 0xc
cmp ax, si
jne 0x4085fb
mov dword [edi + 0x10b8], 1
jmp 0x408627
cmp ax, 4
jne 0x408609
mov dword [edi + 0x10b8], esi
jmp 0x408627
cmp ax, 8
jne 0x40861b
mov dword [edi + 0x10b8], 2
jmp 0x408627
cmp ax, 0xc
jne 0x408627
mov dword [edi + 0x10b8], ebp
mov eax, ecx
mov edx, 1
and eax, ebp
cmp ax, si
jne 0x40863d
mov dword [edi + 0x10b4], edx
jmp 0x408667
cmp ax, dx
jne 0x40864a
mov dword [edi + 0x10b4], esi
jmp 0x408667
cmp ax, 2
jne 0x40865c
mov dword [edi + 0x10b4], 2
jmp 0x408667
cmp ax, bp
jne 0x408667
mov dword [edi + 0x10b4], ebp
test ch, 4
je 0x408674
mov dword [edi + 0x10e0], edx
jmp 0x40867a
mov dword [edi + 0x10e0], esi
test cl, 0x80
je 0x408687
mov dword [edi + 0x10e8], edx
jmp 0x40868d
mov dword [edi + 0x10e8], esi
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push esi
push esi
push str.CharInKana
push edx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x4086c9
cmp dword [esp + 0x18], esi
je 0x4086bf
mov dword [edi + 0x10f4], esi
jmp 0x4086c9
mov dword [edi + 0x10f4], 1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push esi
push esi
mov ebp, 4
push str.shiftmode
push edx
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x4086f8
mov eax, dword [esp + 0x18]
mov dword [edi + 0x1108], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push esi
push esi
push str.AtShiftModeOut
push eax
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x408722
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x110c], ecx
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea esi, [edi + 0x1114]
push edx
push esi
push 0
push 0
push str.AutoAlphaStr
push eax
mov dword [esp + 0x2c], 0x1000
call ebx
test eax, eax
jne 0x408756
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x2114], ecx
jmp 0x408763
mov byte [esi], 0
mov dword [edi + 0x2114], 0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push 0
push 0
push str.NonKanjiCandidate
push ecx
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x40878f
mov edx, dword [esp + 0x18]
mov dword [edi + 0x10f0], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push 0
push 0
push str.Trigger
push edx
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x4087bb
mov eax, dword [esp + 0x18]
mov dword [edi + 0x10e4], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push 0
push 0
push str.AutoCorrect
push eax
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x4087e7
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x2228], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push 0
push 0
push str.AutoAlphaFlag
push ecx
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x408813
mov edx, dword [esp + 0x18]
mov dword [edi + 0x1110], edx
mov eax, dword [esp + 0x10]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call ebp
xor esi, esi
jmp 0x408830
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 0x1440]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIMEJPMSIMEAutoCharWidth
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408940
lea ecx, [esp + 0x2dc]
call fcn.00419eb0
lea eax, [esp + 0x24]
lea ecx, [esp + 0x2c]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push 0
lea edx, [esp + 0x34]
push 0
lea eax, [esp + 0x1e8]
push edx
push eax
mov ebx, 0x104
push 0
push ecx
mov dword [esp + 0x1458], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], 4
call ebp
cmp eax, 0x103
je 0x408910
lea edx, [esp + 0x1d8]
mov ecx, edi
push edx
call fcn.0040a8e0
test eax, eax
jl 0x4088d9
mov edx, dword [esp + 0x2c]
mov eax, dword [0x432ddc]
push edx
lea edx, [esp + 0x1dc]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1ec]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x2c]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push 0
lea edx, [esp + 0x34]
push 0
lea eax, [esp + 0x1e8]
inc esi
push edx
push eax
push esi
push ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], 4
call ebp
cmp eax, 0x103
jne 0x4088ab
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x2dc]
mov dword [esp + 0x1438], 0xffffffff
call fcn.00413050
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
xor esi, esi
mov ecx, dword [esp + 0x1440]
lea eax, [esp + 0x10]
push eax
push 0x20019
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIMEJPRomaDef
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4089f0
lea edx, [esp + 0x14]
lea eax, [esp + 0x430]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x34]
push eax
push ecx
push 0
push str.Custom
push edx
mov dword [esp + 0x2c], 0x1000
call ebx
test eax, eax
jne 0x4089e9
push eax
mov ecx, dword [esp + 0x1444]
lea eax, [esp + 0x24]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push str.SoftwareMicrosoftIMEJP8.1RomaDefCustom
push ecx
call esi
test eax, eax
jne 0x4089e9
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x430]
push edx
mov edx, dword [esp + 0x24]
push eax
push ecx
push 0
push str.table
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x20]
push eax
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call ebp
mov eax, dword [esp + 0x1440]
lea edx, [esp + 0x10]
push edx
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIMEJPStyleListCustom
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408a55
mov edx, dword [esp + 0x1440]
lea ecx, [esp + 0x20]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListCustom
push edx
call esi
test eax, eax
jne 0x408a4e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.00406c80
mov edx, dword [esp + 0x28]
add esp, 8
push edx
call ebp
mov eax, dword [esp + 0x10]
push eax
call ebp
mov edx, dword [esp + 0x1440]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIMEJPStyleListCustomColor
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408b74
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x130]
push eax
push ecx
push 0
push 0
mov esi, 0x54
push str.colf
push edx
mov dword [edi + 0x2450], 1
mov dword [esp + 0x34], esi
call ebx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0xdc]
push eax
push ecx
push 0
push 0
push str.colb
push edx
mov dword [esp + 0x34], esi
call ebx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x184]
push eax
push ecx
push 0
push 0
push str.undercolor
push edx
mov dword [esp + 0x34], esi
call ebx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x34]
push eax
push ecx
push 0
push 0
push str.under
push edx
mov dword [esp + 0x34], esi
call ebx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x88]
push eax
push ecx
push 0
push 0
push str.underrop
push edx
mov dword [esp + 0x34], esi
call ebx
lea ecx, [edi + 0x22b0]
xor eax, eax
mov edx, dword [esp + eax + 0x130]
add eax, 4
mov dword [ecx - 4], edx
mov edx, dword [esp + eax + 0xd8]
mov dword [ecx], edx
mov edx, dword [esp + eax + 0x180]
mov dword [ecx + 8], edx
mov edx, dword [esp + eax + 0x30]
mov dword [ecx + 4], edx
mov edx, dword [esp + eax + 0x84]
mov dword [ecx + 0xc], edx
add ecx, 0x14
cmp eax, esi
jl 0x408b35
mov eax, dword [esp + 0x10]
push eax
call ebp
mov ecx, dword [esp + 0x1430]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x142c
ret 4