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

Disassembly:
push 0xffffffffffffffff
push 0x4473af
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45fce8]
xor eax, esp
push eax
lea eax, [esp + 0x104]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x5c], ebp
lea eax, [esp + 0x74]
push eax
xor ebx, ebx
lea ecx, [esp + 0x18]
push ecx
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push str.SOFTWAREWebzenMUConfig
push connect
mov dword [esp + 0x84], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
je 0x403299
mov esi, dword [sym.imp.mumsg.dll_public:_char____thiscall_CMsg::Get_int_]
push 0x10
push 0xc9
mov ecx, 0x46d410
call esi
push eax
push 0xc8
mov ecx, 0x46d410
call esi
push eax
mov ecx, ebp
call fcn.004178a2
push ebx
mov ecx, ebp
call fcn.0041463c
jmp 0x4038bf
mov eax, dword [ebp + 0x17c]
lea esi, [ebp + 0x17c]
sub eax, 0x10
mov edi, 0x40
mov dword [esp + 0x20], edi
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, edi
or eax, ecx
jge 0x4032ca
push edi
mov ecx, esi
call fcn.00401d70
mov eax, dword [esi]
cmp dword [eax - 8], edi
jge 0x4032db
push 0x80070057
call fcn.004014e0
lea ecx, [esp + 0x20]
push ecx
push eax
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push ebx
push ebx
mov byte [edx + 0x40], bl
mov edx, dword [esp + 0x24]
push 0x44bbac
push edx
call edi
test eax, eax
je 0x403342
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, edi
or eax, ecx
jge 0x403322
push edi
mov ecx, esi
call fcn.00401d70
mov esi, dword [esi]
mov ecx, dword [esp + 0x14]
add edi, 1
push edi
push esi
push 1
push ebx
push 0x44bbac
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, ebp
mov dword [esp + 0x20], 4
call fcn.00401660
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
lea esi, [ebp + 0x180]
push esi
push ebx
push ebx
push str.SoundOnOff
push eax
call edi
test eax, eax
je 0x403385
mov ecx, dword [esp + 0x14]
push 4
push esi
push 4
push ebx
push str.SoundOnOff
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
lea esi, [ebp + 0x184]
push esi
push ebx
push ebx
push str.MusicOnOff
push eax
call edi
test eax, eax
je 0x4033b9
mov ecx, dword [esp + 0x14]
push 4
push esi
push 4
push ebx
push str.MusicOnOff
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
lea esi, [ebp + 0x198]
push esi
push ebx
push ebx
push str.Resolution
push eax
call edi
test eax, eax
je 0x4033ed
mov ecx, dword [esp + 0x14]
push 4
push esi
push 4
push ebx
push str.Resolution
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [esi], ebx
jne 0x4033f7
mov dword [esi], 1
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
lea esi, [ebp + 0x19c]
push esi
push ebx
push ebx
push str.ColorDepth
push eax
call edi
test eax, eax
je 0x40342b
mov ecx, dword [esp + 0x14]
push 4
push esi
push 4
push ebx
push str.ColorDepth
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 7
mov ebp, 0xf
push str.English
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
call fcn.00401380
push 3
push 0x44bd8c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x114], ebx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401380
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0xd4]
mov byte [esp + 0x114], 1
call fcn.004026c0
push eax
lea ecx, [esp + 0x98]
mov byte [esp + 0x110], 2
call fcn.004027c0
mov esi, dword [esp + 0x5c]
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x6c]
add esi, 0x31c
push edx
mov ecx, esi
mov byte [esp + 0x114], 3
call fcn.004030d0
lea ecx, [esp + 0x94]
call fcn.00402240
lea ecx, [esp + 0xcc]
call fcn.00402240
mov edi, 0x10
cmp dword [esp + 0x3c], edi
jb 0x4034f8
mov eax, dword [esp + 0x28]
push eax
call fcn.00413b82
add esp, 4
cmp dword [esp + 0x58], edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov dword [esp + 0x10c], 0xffffffff
jb 0x403522
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00413b82
add esp, 4
push 7
push str.Spanish
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
call fcn.00401380
push 3
push 0x44bd80
lea ecx, [esp + 0x2c]
mov dword [esp + 0x114], 4
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401380
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0xd4]
mov byte [esp + 0x114], 5
call fcn.004026c0
push eax
lea ecx, [esp + 0x98]
mov byte [esp + 0x110], 6
call fcn.004027c0
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x6c]
push edx
mov ecx, esi
mov byte [esp + 0x114], 7
call fcn.004030d0
lea ecx, [esp + 0x94]
call fcn.00402240
lea ecx, [esp + 0xcc]
call fcn.00402240
cmp dword [esp + 0x3c], edi
jb 0x4035df
mov eax, dword [esp + 0x28]
push eax
call fcn.00413b82
add esp, 4
cmp dword [esp + 0x58], edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov dword [esp + 0x10c], 0xffffffff
jb 0x403609
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00413b82
add esp, 4
push 0xa
push str.Portuguese
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
call fcn.00401380
push 3
push 0x44bd70
lea ecx, [esp + 0x2c]
mov dword [esp + 0x114], 8
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.00401380
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0xd4]
mov byte [esp + 0x114], 9
call fcn.004026c0
push eax
lea ecx, [esp + 0x98]
mov byte [esp + 0x110], 0xa
call fcn.004027c0
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x6c]
push edx
mov ecx, esi
mov byte [esp + 0x114], 0xb
call fcn.004030d0
lea ecx, [esp + 0x94]
call fcn.00402240
lea ecx, [esp + 0xcc]
call fcn.00402240
cmp dword [esp + 0x3c], edi
jb 0x4036c6
mov eax, dword [esp + 0x28]
push eax
call fcn.00413b82
add esp, 4
cmp dword [esp + 0x58], edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov dword [esp + 0x10c], 0xffffffff
jb 0x4036f0
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00413b82
add esp, 4
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
push ebx
push ebx
push str.LangSelection
push ecx
mov byte [esp + 0x34], bl
mov word [esp + 0x35], bx
mov byte [esp + 0x37], bl
mov dword [esp + 0x38], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40379d
lea eax, [esp + 0x1c]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x403738
sub eax, edx
push eax
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x48]
call fcn.00401380
mov ebp, dword [esi + 4]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
mov dword [esp + 0x114], 0xc
mov dword [esp + 0x68], 1
call fcn.00402640
mov edi, eax
mov eax, dword [edi]
cmp eax, ebx
je 0x403785
cmp eax, esi
je 0x40378a
call fcn.0042fd58
cmp dword [edi + 4], ebp
mov ebp, 0xf
mov edi, 0x10
mov byte [esp + 0x1b], bl
jne 0x4037a2
mov byte [esp + 0x1b], 1
test byte [esp + 0x60], 1
mov dword [esp + 0x10c], 0xffffffff
je 0x4037c7
cmp dword [esp + 0x58], edi
jb 0x4037c7
mov edx, dword [esp + 0x44]
push edx
call fcn.00413b82
add esp, 4
cmp byte [esp + 0x1b], bl
je 0x403832
mov eax, dword [esi + 4]
mov edi, dword [eax]
cmp edi, eax
jne 0x4037db
call fcn.0042fd58
cmp dword [edi + 0x24], 0x10
jb 0x4037e6
mov eax, dword [edi + 0x10]
jmp 0x4037e9
lea eax, [edi + 0x10]
push 4
push eax
mov eax, dword [esp + 0x1c]
push 1
push ebx
push str.LangSelection
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esi + 4]
mov edi, dword [eax]
cmp edi, eax
jne 0x40380d
call fcn.0042fd58
cmp dword [edi + 0x24], 0x10
jb 0x403818
mov edi, dword [edi + 0x10]
jmp 0x40381b
add edi, 0x10
push 3
push edi
lea ecx, [esp + 0x24]
push 4
push ecx
call fcn.0042fd68
add esp, 0x10
mov edi, 0x10
lea eax, [esp + 0x1c]
mov dword [esp + 0x90], ebp
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
lea edx, [eax + 1]
jmp 0x403850
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x403850
sub eax, edx
push eax
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x80]
call fcn.00401380
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, esi
mov dword [esp + 0x114], 0xd
call fcn.00402640
cmp dword [esp + 0x90], edi
mov edx, dword [eax]
mov ecx, dword [esp + 0x5c]
mov dword [ecx + 0x328], edx
mov eax, dword [eax + 4]
mov dword [ecx + 0x32c], eax
jb 0x4038b4
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.00413b82
add esp, 4
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x104]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret