Function at 0x407060
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports
Set registry value

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x424026
push eax
mov dword fs:[0], esp
sub esp, 0x4e0
lea eax, [esp]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push eax
mov ecx, dword [esp + 0x504]
xor ebp, ebp
push 0x20019
push ebp
push str.SoftwareMicrosoftIMEJP8.0CICERO
push ecx
mov dword [esi + 8], 1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4076bb
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
mov edi, 4
push str.Kimode
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407195
mov eax, dword [esp + 0x18]
mov ecx, eax
and ecx, 0x3000
cmp cx, bp
jne 0x4070f5
mov dword [esi + 0x20], ebp
jmp 0x407123
cmp cx, 0x1000
jne 0x407105
mov dword [esi + 0x20], 1
jmp 0x407123
cmp cx, 0x2000
jne 0x407115
mov dword [esi + 0x20], 2
jmp 0x407123
cmp cx, 0x3000
jne 0x407123
mov dword [esi + 0x20], 3
mov ecx, eax
and ecx, 0x600
cmp cx, bp
jne 0x407135
mov dword [esi + 0x18], ebp
jmp 0x407153
cmp cx, 0x200
jne 0x407145
mov dword [esi + 0x18], 1
jmp 0x407153
cmp cx, 0x400
jne 0x407153
mov dword [esi + 0x18], 2
and eax, 0xe
cmp ax, bp
jne 0x407160
mov dword [esi + 0xc], ebp
jmp 0x407195
cmp ax, 2
jne 0x40716f
mov dword [esi + 0xc], 1
jmp 0x407195
cmp ax, 0xa
jne 0x40717e
mov dword [esi + 0xc], 2
jmp 0x407195
cmp ax, di
jne 0x40718c
mov dword [esi + 0xc], 3
jmp 0x407195
cmp ax, 0xc
jne 0x407195
mov dword [esi + 0xc], edi
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.mode1
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x4071c8
test byte [esp + 0x18], 0x80
je 0x4071c1
mov dword [esi + 0x24], ebp
jmp 0x4071c8
mov dword [esi + 0x24], 1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.mode2
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x40726f
mov eax, dword [esp + 0x18]
test ah, 4
je 0x4071ff
mov edx, 1
mov dword [esi + 0x28], edx
jmp 0x407207
mov dword [esi + 0x28], ebp
mov edx, 1
mov ecx, eax
and ecx, 0xc
cmp cx, bp
jne 0x407216
mov dword [esi + 0x14], edx
jmp 0x40723c
cmp cx, di
jne 0x407220
mov dword [esi + 0x14], ebp
jmp 0x40723c
cmp cx, 8
jne 0x40722f
mov dword [esi + 0x14], 2
jmp 0x40723c
cmp cx, 0xc
jne 0x40723c
mov dword [esi + 0x14], 3
and eax, 3
cmp ax, bp
jne 0x407249
mov dword [esi + 0x10], edx
jmp 0x40726f
cmp ax, dx
jne 0x407253
mov dword [esi + 0x10], ebp
jmp 0x40726f
cmp ax, 2
jne 0x407262
mov dword [esi + 0x10], 2
jmp 0x40726f
cmp ax, 3
jne 0x40726f
mov dword [esi + 0x10], 3
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.ResourceMode
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407296
mov edx, dword [esp + 0x18]
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push ebp
push ebp
push str.PunctTrigger
push edx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x4072bd
mov eax, dword [esp + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push ebp
push ebp
push str.DicMode
push eax
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x40730a
mov eax, dword [esp + 0x18]
and eax, 3
cmp ax, bp
jne 0x4072f2
mov dword [esi + 0x30], 2
jmp 0x40730a
cmp ax, 1
jne 0x4072fd
mov dword [esi + 0x30], ebp
jmp 0x40730a
cmp ax, 2
jne 0x40730a
mov dword [esi + 0x30], 1
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push ebp
push ebp
push str.NKCand
push eax
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407331
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.SelByNum
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407363
cmp dword [esp + 0x18], ebp
je 0x40735c
mov dword [esi + 0x38], ebp
jmp 0x407363
mov dword [esi + 0x38], 1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.CharComment
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x40738a
mov edx, dword [esp + 0x18]
mov dword [esi + 0x3c], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push ebp
push ebp
push str.WordComment
push edx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x4073b1
mov eax, dword [esp + 0x18]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esi + 0x48]
push ecx
push edx
push ebp
push ebp
push str.RomaTemplate
push eax
mov dword [esp + 0x2c], 0x10
call ebx
test eax, eax
jne 0x4073db
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.KeyOverrides
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x4074c8
mov ecx, dword [esp + 0x18]
test ch, 0x40
je 0x407411
mov dword [esi + 0x58], 1
jmp 0x407414
mov dword [esi + 0x58], ebp
test ch, 0x10
je 0x407422
mov dword [esi + 0x5c], 1
jmp 0x407425
mov dword [esi + 0x5c], ebp
mov eax, ecx
mov edx, 6
and eax, 0x700
cmp ax, bp
jne 0x40743b
mov dword [esi + 0x60], ebp
jmp 0x40746d
cmp ax, 0x200
jne 0x40744a
mov dword [esi + 0x60], 2
jmp 0x40746d
cmp ax, 0x300
jne 0x407459
mov dword [esi + 0x60], 3
jmp 0x40746d
cmp ax, 0x400
jne 0x407464
mov dword [esi + 0x60], edi
jmp 0x40746d
cmp ax, 0x600
jne 0x40746d
mov dword [esi + 0x60], edx
mov eax, ecx
and eax, 0x70
cmp ax, bp
jne 0x40747c
mov dword [esi + 0x64], ebp
jmp 0x4074ae
cmp ax, 0x20
jne 0x40748b
mov dword [esi + 0x64], 2
jmp 0x4074ae
cmp ax, 0x30
jne 0x40749a
mov dword [esi + 0x64], 3
jmp 0x4074ae
cmp ax, 0x40
jne 0x4074a5
mov dword [esi + 0x64], edi
jmp 0x4074ae
cmp ax, 0x60
jne 0x4074ae
mov dword [esi + 0x64], edx
and cl, 7
cmp cl, 4
jne 0x4074bb
mov dword [esi + 0x68], edi
jmp 0x4074c8
cmp ax, 0x20
jne 0x4074c8
mov dword [esi + 0x68], 5
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.FuncKeyUsage
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407555
mov eax, dword [esp + 0x18]
test ah, 0x80
je 0x4074fa
mov dword [esi + 0x6c], 1
jmp 0x4074fd
mov dword [esi + 0x6c], ebp
test al, 0x20
je 0x40750a
mov dword [esi + 0x70], 0x20
jmp 0x40750d
mov dword [esi + 0x70], ebp
test al, 0x40
je 0x40751a
mov dword [esi + 0x74], 0x40
jmp 0x40751d
mov dword [esi + 0x74], ebp
test al, 0x80
je 0x40752a
mov dword [esi + 0x78], 0x80
jmp 0x40752d
mov dword [esi + 0x78], ebp
test ah, 1
je 0x40753b
mov dword [esi + 0x7c], 0x100
jmp 0x40753e
mov dword [esi + 0x7c], ebp
test ah, 2
je 0x40754f
mov dword [esi + 0x80], 0x200
jmp 0x407555
mov dword [esi + 0x80], ebp
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.shiftmode
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x40757f
mov edx, dword [esp + 0x18]
mov dword [esi + 0x84], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push ebp
push ebp
push str.ShiftModeRecover
push edx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x4075a9
mov eax, dword [esp + 0x18]
mov dword [esi + 0x88], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push ebp
push ebp
push str.AutoAlpha
push eax
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x4075d3
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x8c], ecx
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea edi, [esi + 0x90]
push edx
push edi
push ebp
push ebp
push str.AutoAlphaChar
push eax
mov dword [esp + 0x2c], 0x1000
call ebx
test eax, eax
jne 0x407605
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x1090], ecx
jmp 0x40760e
mov byte [edi], 0
mov dword [esi + 0x1090], ebp
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
mov edi, 4
push str.AutoAlphaUNC
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x40763d
mov edx, dword [esp + 0x18]
mov dword [esi + 0x1094], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push ebp
push ebp
push str.AutoAlphaDrive
push edx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407667
mov eax, dword [esp + 0x18]
mov dword [esi + 0x1098], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push ebp
push ebp
push str.AutoAlphaDoubleSlash
push eax
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407691
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x109c], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ebp
push ebp
push str.AutoCorrect
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x4076bb
mov edx, dword [esp + 0x18]
mov dword [esi + 0x10a8], edx
mov edi, dword [esp + 0x500]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0CICEROAutoCharWidth
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x4077c6
lea ecx, [esp + 0x248]
call fcn.00419eb0
lea ecx, [esp + 0x28]
lea edx, [esp + 0x34]
xor edi, edi
push ecx
push edx
mov edx, dword [esp + 0x18]
push edi
lea eax, [esp + 0x38]
push edi
lea ecx, [esp + 0x154]
push eax
push ecx
push edi
push edx
mov dword [esp + 0x518], edi
mov dword [esp + 0x4c], 0x104
mov dword [esp + 0x48], 4
call ebp
cmp eax, 0x103
je 0x40779d
lea eax, [esp + 0x144]
mov ecx, esi
push eax
call fcn.0040a8e0
test eax, eax
jl 0x407762
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
push eax
lea ecx, [esp + 0x250]
call fcn.0041a0c0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x34]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push 0
lea edx, [esp + 0x38]
push 0
lea eax, [esp + 0x154]
inc edi
push edx
push eax
push edi
push ecx
mov dword [esp + 0x4c], 0x104
mov dword [esp + 0x48], 4
call ebp
cmp eax, 0x103
jne 0x407735
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x248]
mov dword [esp + 0x4f8], 0xffffffff
call fcn.00413050
mov edi, dword [esp + 0x500]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0Dictionaries
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40781b
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
push eax
mov eax, dword [esp + 0x20]
push str.MemoryLearning
push eax
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407810
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x10a4], ecx
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0Window
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x407895
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
push eax
mov eax, dword [esp + 0x20]
push str.ResourceMode
push eax
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407865
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x10c8], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push 0
push 0
push str.AdviceDefault
push ecx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407895
mov edx, dword [esp + 0x18]
mov dword [esi + 0x10cc], edx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0MSIME
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x407eb5
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
xor edi, edi
push edx
push edi
push edi
push str.option3
push eax
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x4079cc
mov ecx, dword [esp + 0x18]
test cl, 1
je 0x4078f5
mov dword [esi + 0x10ac], edi
mov ebp, 1
jmp 0x407900
mov ebp, 1
mov dword [esi + 0x10ac], ebp
mov eax, ecx
and eax, 0x3000
cmp ax, di
jne 0x407914
mov dword [esi + 0x10d4], edi
jmp 0x407944
cmp ax, 0x1000
jne 0x407922
mov dword [esi + 0x10d4], ebp
jmp 0x407944
cmp ax, 0x2000
jne 0x407934
mov dword [esi + 0x10d4], 2
jmp 0x407944
cmp ax, 0x3000
jne 0x407944
mov dword [esi + 0x10d4], 3
mov eax, ecx
and eax, 0xe
cmp ax, di
jne 0x407956
mov dword [esi + 0x10b0], edi
jmp 0x407998
cmp ax, 2
jne 0x407964
mov dword [esi + 0x10b0], ebp
jmp 0x407998
cmp ax, 0xa
jne 0x407976
mov dword [esi + 0x10b0], 2
jmp 0x407998
cmp ax, 4
jne 0x407988
mov dword [esi + 0x10b0], 3
jmp 0x407998
cmp ax, 0xc
jne 0x407998
mov dword [esi + 0x10b0], 4
mov eax, ecx
and eax, 0x600
cmp ax, di
jne 0x4079ac
mov dword [esi + 0x10bc], edi
jmp 0x4079d1
cmp ax, 0x200
jne 0x4079ba
mov dword [esi + 0x10bc], ebp
jmp 0x4079d1
cmp ax, 0x400
jne 0x4079d1
mov dword [esi + 0x10bc], 2
jmp 0x4079d1
mov ebp, 1
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push edi
push edi
push str.FullEditableEN
push eax
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x4079ff
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x10c4], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push edi
push edi
push str.deffont_alwaysuse
push ecx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407a2d
mov edx, dword [esp + 0x18]
mov dword [esi + 0x10d0], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push edi
push edi
push str.EnableDocFeed
push edx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407a5b
mov eax, dword [esp + 0x18]
mov dword [esi + 0x10d8], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push edi
push edi
push str.option1
push eax
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407b71
mov edx, dword [esp + 0x18]
mov ecx, edx
shr ecx, 0x10
mov eax, ecx
and eax, 0xc
cmp ax, di
jne 0x407a9e
mov dword [esi + 0x10b8], ebp
jmp 0x407ace
cmp ax, 4
jne 0x407aac
mov dword [esi + 0x10b8], edi
jmp 0x407ace
cmp ax, 8
jne 0x407abe
mov dword [esi + 0x10b8], 2
jmp 0x407ace
cmp ax, 0xc
jne 0x407ace
mov dword [esi + 0x10b8], 3
mov eax, ecx
and eax, 3
cmp ax, di
jne 0x407ae0
mov dword [esi + 0x10b4], ebp
jmp 0x407b0f
cmp ax, bp
jne 0x407aed
mov dword [esi + 0x10b4], edi
jmp 0x407b0f
cmp ax, 2
jne 0x407aff
mov dword [esi + 0x10b4], 2
jmp 0x407b0f
cmp ax, 3
jne 0x407b0f
mov dword [esi + 0x10b4], 3
test ch, 4
je 0x407b1c
mov dword [esi + 0x10e0], ebp
jmp 0x407b22
mov dword [esi + 0x10e0], edi
test cl, 0x80
je 0x407b2f
mov dword [esi + 0x10e8], ebp
jmp 0x407b35
mov dword [esi + 0x10e8], edi
test edx, 0x880
je 0x407b45
mov dword [esi + 0x10dc], edi
jmp 0x407b4b
mov dword [esi + 0x10dc], ebp
test dh, 2
je 0x407b58
mov dword [esi + 0x1100], ebp
jmp 0x407b5e
mov dword [esi + 0x1100], edi
test dh, 4
je 0x407b6b
mov dword [esi + 0x1104], ebp
jmp 0x407b71
mov dword [esi + 0x1104], edi
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push edi
push edi
push str.option2
push eax
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407bd4
mov eax, dword [esp + 0x18]
and eax, 3
cmp ax, 3
jne 0x407baa
mov dword [esi + 0x10ec], edi
jmp 0x407bd4
cmp ax, di
jne 0x407bb7
mov dword [esi + 0x10ec], edi
jmp 0x407bd4
cmp ax, bp
jne 0x407bc4
mov dword [esi + 0x10ec], ebp
jmp 0x407bd4
cmp ax, 2
jne 0x407bd4
mov dword [esi + 0x10ec], 2
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push edi
push edi
push str.ShowCharComment
push eax
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407c02
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x10f8], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push edi
push edi
push str.ShowWordComment
push ecx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407c30
mov edx, dword [esp + 0x18]
mov dword [esi + 0x10fc], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push edi
push edi
push str.CharInKana
push edx
mov dword [esp + 0x2c], 4
call ebx
test eax, eax
jne 0x407c68
cmp dword [esp + 0x18], edi
je 0x407c62
mov dword [esi + 0x10f4], edi
jmp 0x407c68
mov dword [esi + 0x10f4], ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push edi
push edi
mov ebp, 4
push str.shiftmode
push edx
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x407c97
mov eax, dword [esp + 0x18]
mov dword [esi + 0x1108], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push edi
push edi
push str.AtShiftModeOut
push eax
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x407cc1
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x110c], ecx
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea edi, [esi + 0x1114]
push edx
push edi
push 0
push 0
push str.AutoAlphaStr
push eax
mov dword [esp + 0x2c], 0x1000
call ebx
test eax, eax
jne 0x407cf5
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x2114], ecx
jmp 0x407d02
mov byte [edi], 0
mov dword [esi + 0x2114], 0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push 0
push 0
mov edi, 4
push str.NonKanjiCandidate
push ecx
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x407d33
mov edx, dword [esp + 0x18]
mov dword [esi + 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], edi
call ebx
test eax, eax
jne 0x407d5f
mov eax, dword [esp + 0x18]
mov dword [esi + 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], edi
call ebx
test eax, eax
jne 0x407d8b
mov ecx, dword [esp + 0x18]
mov dword [esi + 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], edi
call ebx
test eax, eax
jne 0x407db7
mov edx, dword [esp + 0x18]
mov dword [esi + 0x1110], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push ecx
push 0
push 0
push str.gakusyuu
push edx
call ebx
test eax, eax
jne 0x407ddf
mov eax, dword [esp + 0x18]
mov dword [esi + 0x2220], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push 0
push 0
push str.memorydict
push eax
call ebx
test eax, eax
jne 0x407e07
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x2224], ecx
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea edi, [esi + 0x222c]
push edx
push edi
push 0
push 0
push str.colstyle
push eax
mov dword [esp + 0x2c], 0x80
call ebx
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test eax, eax
je 0x407e3d
push str.MS_IME2000
push edi
call ebp
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edi, [esi + 0x2454]
push ecx
push edi
push 0
push 0
push str.keystyle
push edx
mov dword [esp + 0x2c], 0x80
call ebx
test eax, eax
je 0x407e6d
push str.MS_IME2000
push edi
call ebp
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea edi, [esi + 0x24d4]
push eax
push edi
push 0
push 0
push str.romastyle
push ecx
mov dword [esp + 0x2c], 0x80
call ebx
test eax, eax
je 0x407e9d
push 0x42b1c0
push edi
call ebp
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov edi, dword [esp + 0x500]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0MSIMEAutoCharWidth
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x407fdd
lea ecx, [esp + 0x39c]
call fcn.00419eb0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x24]
xor edi, edi
push ecx
push edx
mov edx, dword [esp + 0x18]
push edi
lea eax, [esp + 0x2c]
push edi
lea ecx, [esp + 0x50]
push eax
push ecx
push edi
push edx
mov dword [esp + 0x518], 1
mov dword [esp + 0x40], 0x104
mov dword [esp + 0x50], 4
call ebp
cmp eax, 0x103
je 0x407fb2
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.0040a8e0
mov ebp, eax
test ebp, ebp
jl 0x407f72
mov edx, dword [esp + 0x24]
mov eax, dword [0x432ddc]
push edx
lea edx, [esp + 0x44]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1ec]
mov eax, dword [esi + 8]
test eax, eax
jne 0x407f72
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x38]
push ecx
push ebp
lea ecx, [esp + 0x3a4]
mov dword [esp + 0x40], eax
call fcn.0041a0c0
lea edx, [esp + 0x30]
lea eax, [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x18]
push 0
lea ecx, [esp + 0x2c]
push 0
lea edx, [esp + 0x50]
inc edi
push ecx
push edx
push edi
push eax
mov dword [esp + 0x40], 0x104
mov dword [esp + 0x50], 4
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
cmp eax, 0x103
jne 0x407f27
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x500]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x39c]
mov dword [esp + 0x4f8], 0xffffffff
call fcn.00413050
jmp 0x407fe4
mov ebp, dword [esp + 0x500]
lea edx, [esp + 0x10]
push edx
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0RomaDefCustom
push ebp
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x408095
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
add esi, 0x2554
push eax
lea ecx, [esp + 0x40]
push esi
push ecx
push 0
push str.table
push edx
mov dword [esp + 0x2c], 0x1000
call ebx
test eax, eax
jne 0x408086
push eax
lea eax, [esp + 0x20]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push str.SoftwareMicrosoftIMEJP8.1RomaDefCustom
push ebp
call edi
test eax, eax
jne 0x408086
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
push ecx
push esi
push edx
push eax
mov eax, dword [esp + 0x2c]
push str.table
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
jmp 0x40809b
mov edx, dword [esp + 0x10]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call ebx
jmp 0x40809b
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListATOK
push ebp
call esi
test eax, eax
jne 0x4080f4
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListATOK
push ebp
call edi
test eax, eax
jne 0x4080ed
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListCustom
push ebp
call esi
test eax, eax
jne 0x408147
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListCustom
push ebp
call edi
test eax, eax
jne 0x408140
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListMS_IME2000
push ebp
call esi
test eax, eax
jne 0x40819a
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListMS_IME2000
push ebp
call edi
test eax, eax
jne 0x408193
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListMS_IME97
push ebp
call esi
test eax, eax
jne 0x4081ed
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListMS_IME97
push ebp
call edi
test eax, eax
jne 0x4081e6
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListVJE
push ebp
call esi
test eax, eax
jne 0x408240
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListVJE
push ebp
call edi
test eax, eax
jne 0x408239
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListWX
push ebp
call esi
test eax, eax
jne 0x408293
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListWX
push ebp
call edi
test eax, eax
jne 0x40828c
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListATOKColor
push ebp
call esi
test eax, eax
jne 0x4082e6
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListATOKColor
push ebp
call edi
test eax, eax
jne 0x4082df
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListCustomColor
push ebp
call esi
test eax, eax
jne 0x408339
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListCustomColor
push ebp
call edi
test eax, eax
jne 0x408332
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListMS_IME2000Color
push ebp
call esi
test eax, eax
jne 0x40838c
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListMS_IME2000Color
push ebp
call edi
test eax, eax
jne 0x408385
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListMS_IME97Color
push ebp
call esi
test eax, eax
jne 0x4083df
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListMS_IME97Color
push ebp
call edi
test eax, eax
jne 0x4083d8
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListVJEColor
push ebp
call esi
test eax, eax
jne 0x408432
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListVJEColor
push ebp
call edi
test eax, eax
jne 0x40842b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftIMEJP8.0StyleListWXColor
push ebp
call esi
test eax, eax
jne 0x408485
lea ecx, [esp + 0x1c]
push eax
push ecx
push eax
push 0xf003f
push eax
push eax
push eax
push str.SoftwareMicrosoftIMEJP8.1StyleListWXColor
push ebp
call edi
test eax, eax
jne 0x40847e
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00406c80
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edx
call ebx
mov ecx, dword [esp + 0x4f0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4ec
ret 4