Function at 0x40d2f0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f0
mov eax, dword [0x4140c0]
push ebx
push esi
push edi
push 0xb
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
pop edi
xor ebx, ebx
mov esi, 0x9c
push esi
mov dword [eax], ebx
lea eax, [ebp - 0xa0]
push ebx
push eax
call fcn.00409440
add esp, 0xc
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa0], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
push eax
call esi
cmp eax, ebx
mov dword [ebp - 0x1f0], eax
jne 0x40d35e
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 0x94
call esi
test eax, eax
je 0x40d5b1
mov eax, dword [ebp - 0x90]
sub eax, ebx
je 0x40d59f
dec eax
je 0x40d4f7
dec eax
jne 0x40d5b1
push 0x402dcc
push dword [ebp + 8]
call fcn.004047a0
pop ecx
pop ecx
push 4
pop edi
cmp dword [ebp - 0x9c], edi
mov esi, 0x104
jae 0x40d3a1
xor edi, edi
inc edi
jmp 0x40d42a
jne 0x40d3f6
push esi
lea eax, [ebp - 0x1ec]
push ebx
push eax
call fcn.00409440
push 0xa
push dword [ebp + 0xc]
push dword [ebp - 0x9c]
call fcn.0040df0e
push 0x402eb8
push dword [ebp + 0xc]
call fcn.004047b0
push 0xa
lea eax, [ebp - 0x1ec]
push eax
push dword [ebp - 0x98]
call fcn.0040df0e
lea eax, [ebp - 0x1ec]
push eax
push dword [ebp + 0xc]
call fcn.004047b0
add esp, 0x34
jmp 0x40d42a
push 5
pop edi
cmp dword [ebp - 0x9c], edi
jne 0x40d427
cmp dword [ebp - 0x98], ebx
jne 0x40d41a
push 0x402dd4
push dword [ebp + 8]
call fcn.004047a0
pop ecx
pop ecx
jmp 0x40d42a
cmp dword [ebp - 0x98], 1
jne 0x40d427
push 9
jmp 0x40d429
push 8
pop edi
cmp dword [ebp - 0x1f0], ebx
je 0x40d44f
cmp byte [ebp - 6], 2
je 0x40d442
cmp byte [ebp - 6], 3
je 0x40d442
xor eax, eax
jmp 0x40d445
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
jmp 0x40d5b1
lea eax, [ebp - 0x1f0]
push eax
push 0x402e88
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x40d5b1
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1ec]
push eax
lea eax, [ebp + 0xc]
push eax
push ebx
mov dword [ebp + 8], esi
push 0x402e7c
push dword [ebp - 0x1f0]
xor esi, esi
inc esi
mov dword [ebp + 0xc], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40d4e6
lea eax, [ebp - 0x1ec]
push 0x402e70
push eax
call fcn.0040d91e
test eax, eax
pop ecx
pop ecx
je 0x40d4e1
lea eax, [ebp - 0x1ec]
push 0x402e64
push eax
call fcn.0040d91e
test eax, eax
pop ecx
pop ecx
je 0x40d4e1
lea eax, [ebp - 0x1ec]
push 0x402e58
push eax
call fcn.0040d91e
test eax, eax
pop ecx
pop ecx
jne 0x40d4e6
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
push dword [ebp - 0x1f0]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40d5b1
cmp dword [ebp - 0x98], ebx
jne 0x40d510
push 0x402dbc
push dword [ebp + 8]
call fcn.004047a0
xor edi, edi
jmp 0x40d578
push 0x11
pop ecx
mov esi, 0x402e10
lea edi, [ebp - 0xe8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x402dc4
push dword [ebp + 8]
movsb byte es:[edi], byte [esi]
call fcn.004047a0
pop ecx
pop ecx
lea eax, [ebp - 0x1f0]
push eax
push 1
push ebx
lea eax, [ebp - 0xe8]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40d568
push dword [ebp - 0x1f0]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 3
pop edi
push 0x402df4
jmp 0x40d570
push 2
pop edi
push 0x402e04
push dword [ebp + 0xc]
call fcn.004047a0
mov eax, dword [ebp - 0x94]
shr eax, 0x10
cmp ah, 4
pop ecx
pop ecx
jne 0x40d5b1
cmp al, 0x5a
jne 0x40d5b1
push 0x402de4
push dword [ebp + 8]
call fcn.004047a0
pop ecx
pop ecx
push 6
jmp 0x40d5b0
push 0x402ddc
push dword [ebp + 8]
call fcn.004047a0
pop ecx
pop ecx
push 0xa
pop edi
lea eax, [ebp - 0x8c]
push eax
push dword [ebp + 0x10]
call fcn.004047a0
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.00404d66
leave
ret 0x10