Function at 0x412250
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x94
push ebx
push esi
push edi
xor ebx, ebx
lea edx, [esp + 0x18]
push ebp
mov ebp, ecx
mov eax, dword [str.Line_Unavailable]
mov esi, dword [0x4676dc]
mov edi, dword [0x4676e0]
mov ecx, str.Line_Unavailable
mov dword [edx], eax
mov dword [edx + 4], esi
mov dword [edx + 8], edi
mov eax, dword [ecx + 0xc]
mov cl, byte [ecx + 0x10]
mov dword [edx + 0xc], eax
mov byte [edx + 0x10], cl
lea edx, [esp + 0x30]
mov eax, dword [str.Line_Unnamed]
mov esi, dword [0x4676cc]
mov edi, dword [0x4676d0]
mov ecx, str.Line_Unnamed
mov dword [edx], eax
mov dword [edx + 4], esi
mov al, byte [ecx + 0xc]
mov dword [edx + 8], edi
mov byte [edx + 0xc], al
mov edi, dword [0x4676bc]
lea edx, [esp + 0x40]
mov eax, dword [str.Line_Name_is_Empty]
mov esi, dword [0x4676b8]
mov ecx, str.Line_Name_is_Empty
mov dword [edx], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 4], esi
mov dword [esp + 0x10], ebx
mov si, word [ecx + 0x10]
mov dword [edx + 8], edi
mov cl, byte [ecx + 0x12]
lea edi, [esp + 0x55]
mov dword [edx + 0xc], eax
mov al, byte [0x467614]
mov word [edx + 0x10], si
mov byte [esp + 0x54], al
xor eax, eax
mov byte [edx + 0x12], cl
mov ecx, 0x13
lea edx, [esp + 0x14]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push edx
push 0xf003f
push ebx
push str.SOFTWAREElectronic_ArtsRoadRash_95
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x412355
lea eax, [esp + 0x18]
lea ecx, [esp + 0x54]
mov edx, dword [esp + 0x14]
push eax
mov dword [esp + 0x1c], 0x50
push ecx
push ebx
push ebx
push str.TAPI
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
push 0
push 0x146
push 0xfab
push ebp
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
test eax, eax
je 0x41239c
push 0
push 0
push 0x147
push 0xfab
push ebp
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov dword [esp + 0x10], eax
push 0
push 0
push 0x14b
push 0xfab
push ebp
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
xor esi, esi
mov eax, dword [0x4666d0]
cmp eax, esi
je 0x412458
mov ecx, esi
call fcn.00412490
test eax, eax
je 0x412401
push eax
mov edx, esi
mov ecx, ebx
call fcn.00411750
mov ebx, eax
test ebx, ebx
je 0x412401
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4123fb
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4123fb
mov edx, dword [ebx + 0x28]
cmp edx, 1
jne 0x4123fb
lea edi, [eax + ebx]
mov al, byte [eax + ebx]
test al, al
je 0x4123f5
mov al, byte [ecx + edi - 1]
test al, al
je 0x412405
mov byte [ecx + edi - 1], 0
jmp 0x412405
lea edi, [esp + 0x40]
jmp 0x412405
lea edi, [esp + 0x30]
jmp 0x412405
lea edi, [esp + 0x1c]
push edi
push 0
push 0x143
push 0xfab
push ebp
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
lea ecx, [esp + 0x54]
mov al, byte [edi]
cmp al, byte [ecx]
jne 0x41243d
or al, al
je 0x412439
mov al, byte [edi + 1]
cmp al, byte [ecx + 1]
jne 0x41243d
add edi, 2
add ecx, 2
or al, al
jne 0x41241d
xor eax, eax
jmp 0x412442
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41244a
mov dword [esp + 0x10], esi
inc esi
mov eax, dword [0x4666d0]
cmp esi, eax
jb 0x4123ab
test ebx, ebx
je 0x412463
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x10]
push 0
push eax
push 0x14e
push 0xfab
push ebp
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x94
ret