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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84c
mov eax, dword [0x42c760]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push ebx
push eax
push ecx
push 2
mov dword [ebp - 0x848], 0
mov bl, 1
call fcn.004038c0
add esp, 0xc
cmp eax, 2
jge 0x40242b
mov eax, 3
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b37e
mov esp, ebp
pop ebp
ret
push 0x42d1c0
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.0040f453
lea eax, [ebp - 0x20c]
push 0x2e
push eax
call fcn.0040c6f0
add esp, 0x14
test eax, eax
je 0x402459
mov byte [eax], 0
mov ecx, 0x42cfb8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402461
push edi
sub ecx, edx
push ecx
push 0x42cfb8
call fcn.00409780
push str.___41:YY
push 0x42c706
push 0x42c6fc
push str._s_s_s
mov edi, eax
lea eax, [ebp - 0x108]
push 0x104
push eax
call fcn.00404c40
lea eax, [ebp - 0x20c]
push eax
push edi
push str._08X_s
lea eax, [ebp - 0x310]
push 0x104
push eax
call fcn.00404c40
add esp, 0x34
lea eax, [ebp - 0x844]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x108]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x402550
lea eax, [ebp - 0x84c]
mov dword [ebp - 0x84c], 4
push eax
lea eax, [ebp - 0x848]
push eax
push 0
push 0
lea eax, [ebp - 0x310]
push eax
push dword [ebp - 0x844]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x402540
push eax
call fcn.00416637
add esp, 4
push 0
push 0x15180
push edx
push eax
call fcn.0040b3e0
mov ecx, dword [ebp - 0x848]
xor ecx, 0x5a72bc91
sub eax, ecx
cmp eax, 0x5d
setae bl
push dword [ebp - 0x844]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x4025cf
push 0
call fcn.00416637
add esp, 4
mov ecx, eax
mov eax, 0xc22e4507
mul ecx
lea eax, [ebp - 0x84c]
push eax
lea eax, [ebp - 0x844]
shr edx, 0x10
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea eax, [ebp - 0x108]
xor edx, 0x5a72bc91
push eax
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x848], edx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4025cf
push 4
lea eax, [ebp - 0x848]
push eax
push 4
push 0
lea eax, [ebp - 0x310]
push eax
push dword [ebp - 0x844]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 0x844]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x52e
lea eax, [ebp - 0x840]
push 0
push eax
call fcn.0040cfa0
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0x836]
push eax
push str._hd._hd
push 0x42d1c0
call fcn.00404c70
mov eax, dword [ebp - 0x848]
push 0x422850
mov dword [ebp - 0x83a], edi
mov dword [ebp - 0x83e], eax
call fcn.00409040
push 0x42285c
mov word [ebp - 0x832], ax
call fcn.00409040
push 0x422868
mov word [ebp - 0x830], ax
call fcn.00409040
push 0x422878
mov word [ebp - 0x82e], ax
call fcn.00408fc0
push eax
lea eax, [ebp - 0x82c]
push 0x104
push eax
call fcn.0040f453
push 0x422888
call fcn.00408fc0
push eax
lea eax, [ebp - 0x728]
push 0x104
push eax
call fcn.0040f453
add esp, 0x48
lea eax, [ebp - 0x624]
push 0x104
push eax
push 0x422898
call fcn.00408f30
push 0x104
lea eax, [ebp - 0x520]
push eax
push str.VERURL
call fcn.00408f30
push 0x104
lea eax, [ebp - 0x41c]
push eax
push str.DLDURL
call fcn.00408f30
lea eax, [ebp - 0x840]
push eax
push 0x42cfb8
call fcn.004098a0
add esp, 0x2c
lea eax, [ebp - 0x108]
push eax
push 0x4228bc
call fcn.00408fc0
add esp, 4
push eax
call fcn.00409910
lea eax, [ebp - 0x108]
push eax
push 0x4228c8
call fcn.00408dd0
mov ecx, dword [ebp - 4]
add esp, 0x10
xor ecx, ebp
xor eax, eax
pop edi
pop ebx
call fcn.0040b37e
mov esp, ebp
pop ebp
ret