Function at 0x4020a0
Capabilities:
Set registry value

Disassembly:
sub esp, 0x4c
mov eax, edx
cmp eax, 0xbbc
nop
mov dword [esp + 8], edx
push ebx
push esi
push edi
push ebp
mov esi, ecx
jg 0x4020d1
je 0x4022b6
cmp eax, 1
je 0x4021b4
cmp eax, 2
je 0x402284
jmp 0x4020e7
cmp eax, 0xbc1
je 0x4022b6
cmp eax, 0xbdc
je 0x4022a7
mov edi, 0x463038
mov eax, dword [esp + 0x64]
cmp eax, 0x300
jne 0x402148
xor ebx, ebx
mov eax, dword [edi]
push eax
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, dword [esp + 0x60]
je 0x402117
inc ebx
add edi, 0x18
cmp ebx, 7
jl 0x4020f9
jmp 0x402199
push 0
mov eax, dword [edi]
push 0
push eax
push esi
call dword [sym.imp.USER32.dll_GetDlgItemInt]
mov ecx, 0x64
sub ecx, eax
mov eax, dword [edi + 4]
push ecx
push 1
push 0x405
push eax
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402199
cmp eax, 0x200
jne 0x402199
mov ebx, 7
mov eax, dword [edi]
push eax
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, dword [esp + 0x60]
jne 0x402193
push 0
mov ebp, 0x64
push 0
mov eax, dword [edi + 4]
push 0
push 0x400
push eax
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
sub ebp, eax
mov eax, dword [edi]
push ebp
push eax
push esi
call dword [sym.imp.USER32.dll_SetDlgItemInt]
add edi, 0x18
dec ebx
jne 0x402154
push 0
mov eax, dword [0x4c8018]
push esi
mov ecx, dword [0x4753f4]
push eax
push ecx
call dword [sym.imp.USER32.dll_PostThreadMessageA]
jmp 0x4022a7
mov edi, 0x463038
push 0xbdc
push esi
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
mov byte [0x463030], al
xor eax, eax
mov al, byte [0x463034]
lea ebx, [esp + 0x24]
mov dword [esp + 0x10], 7
mov dword [esp + 0x1c], eax
xor eax, eax
mov al, byte [0x463030]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 4]
mov ebp, 0x64
push 0
add ebx, 4
push 0
add ebx, 4
push 0x400
add edi, 0x18
push eax
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
sub ebp, eax
mov dword [edi - 8], ebp
mov dword [ebx - 8], ebp
mov eax, dword [edi - 0x10]
push eax
push esi
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
mov ecx, dword [esp + 0x10]
mov byte [edi - 4], al
xor eax, eax
dec ecx
mov al, byte [edi - 4]
mov dword [esp + 0x10], ecx
mov dword [ebx - 4], eax
jne 0x4021ec
lea eax, [esp + 0x14]
push eax
push 0xf003f
push 0
push str.SOFTWAREElectronic_ArtsRoadRash_95
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x402284
lea eax, [esp + 0x1c]
push 0x40
mov ecx, dword [esp + 0x18]
push eax
push 3
push 0
push str.Mixer
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
mov eax, dword [0x4c800c]
push 0
mov ecx, dword [0x4753f4]
push eax
push ecx
call dword [sym.imp.USER32.dll_PostThreadMessageA]
mov ecx, dword [esp + 0x18]
push ecx
push esi
call dword [sym.imp.USER32.dll_EndDialog]
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret 8
push 0
mov eax, dword [0x4c801c]
push esi
mov ecx, dword [0x4753f4]
push eax
push ecx
call dword [sym.imp.USER32.dll_PostThreadMessageA]
jmp 0x4022a7