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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42405b
push eax
mov dword fs:[0], esp
sub esp, 0x520
lea eax, [esp]
push ebx
push ebp
push esi
push edi
mov edi, ecx
push eax
mov ecx, dword [esp + 0x544]
xor esi, esi
push 0x20019
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIME98MSIME
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408e34
mov ecx, dword [esp + 0x10]
mov ebp, 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 ebp
test eax, eax
mov ebx, 2
jne 0x408c64
mov eax, dword [esp + 0x18]
test al, 1
je 0x408c18
mov dword [edi + 0x10ac], esi
jmp 0x408c22
mov dword [edi + 0x10ac], 1
and eax, 0x3000
cmp ax, si
jne 0x408c34
mov dword [edi + 0x10d4], esi
jmp 0x408c64
cmp ax, 0x1000
jne 0x408c46
mov dword [edi + 0x10d4], 1
jmp 0x408c64
cmp ax, 0x2000
jne 0x408c54
mov dword [edi + 0x10d4], ebx
jmp 0x408c64
cmp ax, 0x3000
jne 0x408c64
mov dword [edi + 0x10d4], 3
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.option1
push ecx
mov dword [esp + 0x2c], 4
call ebp
test eax, eax
jne 0x408d3c
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
mov eax, ecx
and eax, 0xc
cmp ax, si
jne 0x408ca9
mov dword [edi + 0x10b8], 1
jmp 0x408cd5
cmp ax, 4
jne 0x408cb7
mov dword [edi + 0x10b8], esi
jmp 0x408cd5
cmp ax, 8
jne 0x408cc5
mov dword [edi + 0x10b8], ebx
jmp 0x408cd5
cmp ax, 0xc
jne 0x408cd5
mov dword [edi + 0x10b8], 3
mov eax, ecx
mov edx, 1
and eax, 3
cmp ax, si
jne 0x408cec
mov dword [edi + 0x10b4], edx
jmp 0x408d16
cmp ax, dx
jne 0x408cf9
mov dword [edi + 0x10b4], esi
jmp 0x408d16
cmp ax, bx
jne 0x408d06
mov dword [edi + 0x10b4], ebx
jmp 0x408d16
cmp ax, 3
jne 0x408d16
mov dword [edi + 0x10b4], 3
test ch, 4
je 0x408d23
mov dword [edi + 0x10e0], edx
jmp 0x408d29
mov dword [edi + 0x10e0], esi
test cl, 0x80
je 0x408d36
mov dword [edi + 0x10e8], edx
jmp 0x408d3c
mov dword [edi + 0x10e8], esi
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.CharInKana
push ecx
mov dword [esp + 0x2c], 4
call ebp
test eax, eax
jne 0x408d78
cmp dword [esp + 0x18], esi
je 0x408d6e
mov dword [edi + 0x10f4], esi
jmp 0x408d78
mov dword [edi + 0x10f4], 1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
mov ebx, 4
push str.shiftmode
push ecx
mov dword [esp + 0x2c], ebx
call ebp
test eax, eax
jne 0x408da7
mov edx, dword [esp + 0x18]
mov dword [edi + 0x1108], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push esi
push esi
push str.NonKanjiCandidate
push edx
mov dword [esp + 0x2c], ebx
call ebp
test eax, eax
jne 0x408dd1
mov eax, dword [esp + 0x18]
mov dword [edi + 0x10f0], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push esi
push esi
push str.Trigger
push eax
mov dword [esp + 0x2c], ebx
call ebp
test eax, eax
jne 0x408dfb
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x10e4], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.AutoCorrect
push ecx
mov dword [esp + 0x2c], ebx
call ebp
test eax, eax
jne 0x408e25
mov edx, dword [esp + 0x18]
mov dword [edi + 0x2228], edx
mov eax, dword [esp + 0x10]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call ebx
jmp 0x408e40
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x540]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIME98MSIMEAutoCharWidth
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408f77
lea ecx, [esp + 0x2d8]
call fcn.00419eb0
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x28]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push 0
lea edx, [esp + 0x30]
push 0
lea eax, [esp + 0x1e4]
push edx
push eax
push 0
push ecx
mov dword [esp + 0x558], esi
mov dword [esp + 0x44], 0x104
mov dword [esp + 0x4c], 4
call ebx
cmp eax, 0x103
je 0x408f4d
lea edx, [esp + 0x1d4]
mov ecx, edi
push edx
call fcn.0040a8e0
mov ebp, eax
test ebp, ebp
jl 0x408f08
mov edx, dword [esp + 0x28]
mov eax, dword [0x432ddc]
push edx
lea edx, [esp + 0x1d8]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1ec]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x1c]
push ecx
push ebp
lea ecx, [esp + 0x2e0]
mov dword [esp + 0x24], eax
call fcn.0041a0c0
lea edx, [esp + 0x2c]
lea eax, [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x18]
push 0
lea ecx, [esp + 0x30]
push 0
lea edx, [esp + 0x1e4]
inc esi
push ecx
push edx
push esi
push eax
mov dword [esp + 0x44], 0x104
mov dword [esp + 0x4c], 4
call ebx
cmp eax, 0x103
jne 0x408ebe
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x2d8]
mov dword [esp + 0x538], 0xffffffff
call fcn.00413050
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
mov eax, dword [esp + 0x540]
lea edx, [esp + 0x10]
push edx
push 0x20019
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIME98RomaDef
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x409019
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x42c]
push ecx
push edx
push 0
push 0
push str.Custom
push eax
mov dword [esp + 0x2c], 0x104
call ebp
test eax, eax
jne 0x409012
mov edx, dword [esp + 0x540]
lea ecx, [esp + 0x20]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1RomaDefCustom
push edx
call esi
test eax, eax
jne 0x409012
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x42c]
push eax
push ecx
push 3
push 0
push str.table
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x20]
push eax
call ebx
mov ecx, dword [esp + 0x10]
push ecx
call ebx
mov eax, dword [esp + 0x540]
lea edx, [esp + 0x10]
push edx
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIME98StyleListCustom
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40907e
mov edx, dword [esp + 0x540]
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 0x409077
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 ebx
mov eax, dword [esp + 0x10]
push eax
call ebx
mov edx, dword [esp + 0x540]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionImeJapanIME98StyleListCustomColor
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40919d
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x180]
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 ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0xd8]
push eax
push ecx
push 0
push 0
push str.colb
push edx
mov dword [esp + 0x34], esi
call ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x30]
push eax
push ecx
push 0
push 0
push str.undercolor
push edx
mov dword [esp + 0x34], esi
call ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x12c]
push eax
push ecx
push 0
push 0
push str.under
push edx
mov dword [esp + 0x34], esi
call ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x84]
push eax
push ecx
push 0
push 0
push str.underrop
push edx
mov dword [esp + 0x34], esi
call ebp
lea ecx, [edi + 0x22b0]
xor eax, eax
mov edx, dword [esp + eax + 0x180]
add eax, 4
mov dword [ecx - 4], edx
mov edx, dword [esp + eax + 0xd4]
mov dword [ecx], edx
mov edx, dword [esp + eax + 0x2c]
mov dword [ecx + 8], edx
mov edx, dword [esp + eax + 0x128]
mov dword [ecx + 4], edx
mov edx, dword [esp + eax + 0x80]
mov dword [ecx + 0xc], edx
add ecx, 0x14
cmp eax, esi
jl 0x40915e
mov eax, dword [esp + 0x10]
push eax
call ebx
mov ecx, dword [esp + 0x530]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x52c
ret 4