Function at 0x421fc0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x4e4
mov dword [esp + 0xa0], edx
cdq
mov esi, eax
xor esi, edx
mov eax, 0x66666667
sub esi, edx
imul esi
mov ecx, esi
sar ecx, 0x1f
mov ebx, edx
lea edx, [esp + 0x49f]
sar ebx, 1
sub ebx, ecx
push ebx
lea eax, [ebx + ebx*4]
sub esi, eax
push esi
push str..._d_d..
push edx
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
movsd xmm0, qword [0x53ee70]
movsd qword [esp + 0x4c0], xmm0
movzx edi, word [0x53ee78]
mov word [esp + 0x4c8], di
mov al, byte [0x53ee7a]
mov byte [esp + 0x4ca], al
pxor xmm0, xmm0
movaps xmmword [esp + 0x4b0], xmm0
lea eax, [esp + 0x420]
call fcn.004252d0
lea eax, [esp + 0x420]
mov edx, str._rv_
mov ecx, 4
call fcn.00401c90
lea eax, [esp + 0x420]
lea edx, [esp + 0x4c0]
mov ecx, 0xb
call fcn.00401c90
lea eax, [esp + 0x420]
mov edx, str._rv_
mov ecx, 4
call fcn.00401c90
lea edx, [esp + 0x49f]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4220bf
mov eax, edx
add edx, ecx
call fcn.00425520
lea edx, [esp + 0x49f]
mov ecx, eax
lea eax, [esp + 0x420]
call fcn.00401c90
lea eax, [esp + 0x4b0]
lea edx, [esp + 0x420]
call fcn.00408c90
movzx edi, byte [esp + 0x4bc]
movzx ecx, byte [esp + 0x4bd]
movzx edx, byte [esp + 0x4be]
movzx eax, byte [esp + 0x4bf]
push eax
push edx
push ecx
push edi
movzx eax, byte [esp + 0x4cb]
push eax
movzx edx, byte [esp + 0x4ce]
push edx
movzx ecx, byte [esp + 0x4d1]
push ecx
movzx edi, byte [esp + 0x4d4]
push edi
movzx eax, byte [esp + 0x4d7]
push eax
movzx edx, byte [esp + 0x4da]
push edx
movzx ecx, byte [esp + 0x4dd]
push ecx
movzx edi, byte [esp + 0x4e0]
push edi
movzx eax, byte [esp + 0x4e3]
push eax
movzx edx, byte [esp + 0x4e6]
push edx
movzx ecx, byte [esp + 0x4e9]
push ecx
movzx edi, byte [esp + 0x4ec]
push edi
push str._.2X_.2X_.2X_.2X__.2X_.2X__.2X_.2X__.2X_.2X__.2X_.2X_.2X_.2X_.2X_.2X
lea eax, [esp + 0x4bc]
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x48
mov eax, 0x66666667
imul esi
mov ecx, esi
sar ecx, 0x1f
sar edx, 1
sub edx, ecx
lea edi, [edx + edx*4]
sub esi, edi
cmp esi, 4
ja case.default.0x4221b2
mov eax, dword [esi*4 + 0x53f594]
jmp eax
lea eax, [esp + 0x20]
mov edx, str.cXM3t3L2M_258PJ2MXZxcze9v3DxM7F3dn26d_Y2M_E3or8z9jZw8XE9o_Z9uPE2d7LxsbU5sXJ9vzS7tk
call fcn.004224a0
lea edx, [esp + 0x478]
push edx
push eax
lea eax, [esp + 0x2a8]
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
jmp 0x422278
lea eax, [esp + 0x20]
mov edx, str.cXM3t3L2M_20u3PxOvY3tn2cva2sLD2MK6_27ubmitzP2NT2j9k
call fcn.004224a0
lea edx, [esp + 0x478]
push edx
push eax
lea eax, [esp + 0x2a8]
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
jmp 0x422278
lea eax, [esp + 0x20]
mov edx, str.cXM3t3L2M_27c_E69je2fb5y9rawsPYz4rr7_b80u72j9k
call fcn.004224a0
lea edx, [esp + 0x478]
push edx
push eax
lea eax, [esp + 0x2a8]
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
jmp 0x422278
lea eax, [esp + 0x20]
mov edx, str.cXM3t3L2M_27c_E69je2fb5y9rawsPYz4rr7_bjxNney8bGh4_Z9u7L3svU
call fcn.004224a0
lea edx, [esp + 0x478]
push edx
push eax
lea eax, [esp + 0x2a8]
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
jmp 0x422278
lea eax, [esp + 0x20]
mov edx, str.cXM3t3L2M_258PJ2MXZxcze9v3DxM7F3dn26d_Y2M_E3vzP2NnDxcT20NT20Y_Z1w
call fcn.004224a0
lea edx, [esp + 0x478]
push edx
push eax
lea eax, [esp + 0x2a8]
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0xc
and ebx, 0x80000003
jge 0x42228a
sub ebx, 1
or ebx, 0xfffffffc
inc ebx
test ebx, ebx
je 0x422486
cmp ebx, 1
je 0x4222c5
cmp ebx, 2
jne 0x4222ac
lea eax, [esp + 0x20]
mov edx, str._s_H2sbL3s_Z
call fcn.004224a0
jmp 0x4222d3
cmp ebx, 3
jne 0x4222c1
lea eax, [esp + 0x20]
mov edx, str._cPE8vo
call fcn.004224a0
jmp 0x4222d3
xor ebx, ebx
jmp 0x4222d5
lea eax, [esp + 0x20]
mov edx, str.7s_My9_G3vnP3t7DxM3Z
call fcn.004224a0
mov ebx, eax
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x4d8], 0x80
jne 0x422443
mov byte [esp + 0x320], 0
lea edi, [esp + 0x2a0]
lea esi, [esp + 0xa0]
mov dword [esp + 0x3a0], ebx
push 0x5428fc
push edi
call dword [sym.imp.MSVCR80.dll_strstr]
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x422344
sub ebx, edi
push ebx
push edi
push esi
call dword [sym.imp.MSVCR80.dll_memmove]
push 0
push 0x542830
add esi, ebx
push esi
call dword [sym.imp.MSVCR80.dll_memmove]
add esp, 0x18
lea edi, [ebx + edi + 1]
jmp 0x42230b
mov ebx, dword [esp + 0x3a0]
mov edx, edi
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x422371
mov eax, edx
add edx, ecx
call fcn.00425520
inc eax
push eax
push edi
push esi
call dword [sym.imp.MSVCR80.dll_memmove]
add esp, 0xc
call fcn.00401b70
mov edx, 0x20119
mov ecx, 0x20019
test eax, eax
cmovne ecx, edx
lea eax, [esp + 0x4cc]
push eax
push ecx
push 0
lea esi, [esp + 0xac]
push esi
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4223f0
lea esi, [esp + 0x320]
lea eax, [esp + 0x4d8]
push eax
xor edx, edx
push esi
push edx
push edx
push ebx
push dword [esp + 0x4e0]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, eax
push dword [esp + 0x4cc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
je 0x4223fc
mov word [esi], 0x2d
jmp 0x4223fc
lea esi, [esp + 0x320]
mov word [esi], 0x2d
lea edx, [esp + 0x4d0]
lea eax, [esp + 0x3a0]
push eax
push edx
push str._d:_38s
push esi
call dword [sym.imp.MSVCR80.dll_sscanf]
add esp, 0x10
cmp eax, 2
je 0x42242f
xor eax, eax
add esp, 0x4e4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x4d0]
add esp, 0x4e4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
call fcn.00422e10
test eax, eax
je 0x4222ee
mov edi, dword [esp + 0x4d8]
mov dword [esp + 0x14], 0x53f8c0
mov eax, reloc.OLEAUT32.dll_SysReAllocString
mov ecx, ebx
lea esi, [esp + 0x320]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
lea edx, [esp + 0x2a0]
call fcn.00405390
jmp 0x4223fc
lea eax, [esp + 0x20]
mov edx, str.6f7v9ZmYiuTLx88
call fcn.004224a0
jmp 0x4222d3