Function at 0x40f8d0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a8aea
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push esi
push edi
mov eax, dword [0x4dc6e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
cmp edi, 0xffffffff
jne 0x40fa8e
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x34], eax
push 0x4af9b8
mov dword [ebp - 4], 0
call fcn.0048faa4
mov dword [ebp - 0x2c], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x38], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x28], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x30], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x10], eax
test esi, esi
mov eax, 0x4af9b8
cmovne eax, esi
push eax
call fcn.0048faa4
mov dword [ebp - 0x14], eax
mov edi, dword [ebp + 0x10]
mov eax, 0x4af9b8
test edi, edi
cmovne eax, edi
push eax
call fcn.0048faa4
mov dword [ebp - 0x18], eax
test esi, esi
mov eax, 0x4af9b8
cmovne eax, esi
push eax
call fcn.0048faa4
mov dword [ebp - 0x24], eax
test edi, edi
mov eax, 0x4af9b8
cmovne eax, edi
push eax
call fcn.0048faa4
mov dword [ebp - 0x1c], eax
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x44]
push edi
push eax
call fcn.00407620
mov esi, eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x3c]
push edi
push eax
call fcn.00407620
add esp, 0x48
push 0xffffffffffffffff
push 0
mov byte [ebp - 4], 0xb
push 0
lea ecx, [ebp - 0x34]
push ecx
push 1
push 0
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x10]
push ecx
push esi
push eax
push 0
push 0xffffffffffffffff
push 0
push ebx
call fcn.00403eb0
push dword [ebp - 0x3c]
mov edi, eax
mov dword [ebp + 0x18], edi
call fcn.0048faf7
add esp, 0x48
push dword [ebp - 0x44]
call fcn.0048faf7
push dword [ebp - 0x1c]
call fcn.0048faf7
push dword [ebp - 0x24]
call fcn.0048faf7
push dword [ebp - 0x18]
call fcn.0048faf7
push dword [ebp - 0x14]
call fcn.0048faf7
push dword [ebp - 0x10]
call fcn.0048faf7
push dword [ebp - 0x30]
call fcn.0048faf7
push dword [ebp - 0x28]
call fcn.0048faf7
push dword [ebp - 0x38]
call fcn.0048faf7
push dword [ebp - 0x2c]
call fcn.0048faf7
push dword [ebp - 0x34]
mov dword [ebp - 4], 0xffffffff
call fcn.0048faf7
mov esi, dword [ebp + 0x14]
add esp, 0x2c
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push 0x20019
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00406320
mov eax, dword [ebp - 0x40]
add esp, 0x14
test eax, eax
jne 0x40fac9
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push ecx
push 0
push 0
push 0
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x410063
push 2
call fcn.0048fb2f
xor ecx, ecx
mov dword [ebp - 0x18], eax
mov word [eax], cx
mov eax, dword [ebp - 0x20]
mov edx, 2
shr eax, 1
add eax, 2
mov dword [ebp - 4], 0xc
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048f2de
add esp, 8
mov edi, eax
lea eax, [ebp - 0x20]
push eax
push edi
push 0
push 0
push esi
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [ebp - 0x20]
shr eax, 1
mov dword [ebp - 0x20], eax
cmp eax, 2
jbe 0x410058
xor ecx, ecx
mov word [edi + eax*2 - 2], cx
mov eax, dword [ebp - 0x20]
mov word [edi + eax*2], cx
cmp word [edi], cx
je 0x410058
lea esp, [esp]
push 2
call fcn.0048fb2f
xor ecx, ecx
mov dword [ebp - 0x88], eax
mov word [eax], cx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0xd
push eax
push edi
call fcn.00406840
mov esi, dword [ebp - 0x18]
push edi
call fcn.0048faa4
push esi
mov dword [ebp - 0x18], eax
call fcn.0048faf7
push 0
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x10]
push ebx
push eax
call fcn.00404cf0
add esp, 0x24
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40fc4c
push 0x10
push 0x4afff0
push eax
call fcn.004917b4
add esp, 0xc
test eax, eax
jne 0x40fc49
push 0xa
push 0x4b4acc
push edi
call fcn.004917b4
add esp, 0xc
test eax, eax
jne 0x40fc49
push edi
call fcn.0048faa4
mov esi, eax
mov dword [ebp - 0x78], esi
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0xf
push eax
lea eax, [edi + 0x14]
push eax
call fcn.00406840
push 0
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push ebx
push eax
call fcn.00404cf0
mov ebx, dword [ebp - 0x10]
push dword [eax]
call fcn.0048faa4
push ebx
mov dword [ebp - 0x10], eax
call fcn.0048faf7
push dword [ebp - 0x8c]
call fcn.0048faf7
push esi
call fcn.0048faf7
mov ebx, dword [ebp + 8]
add esp, 0x2c
mov eax, dword [ebp - 0x10]
cmp word [eax], 0
je 0x410021
push 2
call fcn.0048fb2f
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov word [eax], cx
push 2
call fcn.0048fb2f
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov word [eax], cx
push 2
call fcn.0048fb2f
xor ecx, ecx
mov dword [ebp - 0x24], eax
mov word [eax], cx
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x10]
push ebx
call fcn.00404ce0
push edi
mov dword [ebp - 0x78], eax
call fcn.0048faa4
mov dword [ebp - 0x30], eax
mov esi, dword [ebp + 0x14]
mov ecx, 0x4af9b8
test esi, esi
cmovne ecx, esi
push ecx
call fcn.0048faa4
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0x10]
mov eax, 0x4af9b8
test ecx, ecx
cmovne eax, ecx
push eax
call fcn.0048faa4
mov dword [ebp - 0x38], eax
test esi, esi
mov eax, 0x4af9b8
cmovne eax, esi
push eax
call fcn.0048faa4
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0x10]
mov eax, 0x4af9b8
test ecx, ecx
cmovne eax, ecx
push eax
call fcn.0048faa4
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0xa4]
push eax
call fcn.00407620
add esp, 0x40
mov esi, eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x18
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x94]
push eax
call fcn.00407620
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x19
push ecx
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x30]
push ecx
push esi
push eax
push ebx
call fcn.00403c00
push dword [ebp - 0x94]
mov bl, al
call fcn.0048faf7
push dword [ebp - 0xa4]
call fcn.0048faf7
push dword [ebp - 0x34]
call fcn.0048faf7
push dword [ebp - 0x2c]
call fcn.0048faf7
add esp, 0x40
push dword [ebp - 0x38]
call fcn.0048faf7
push dword [ebp - 0x28]
call fcn.0048faf7
push dword [ebp - 0x30]
call fcn.0048faf7
add esp, 0xc
test bl, bl
je 0x410003
cmp dword [ebp + 0x18], 0xffffffff
jne 0x40ff32
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x68], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x70], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x60], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x74], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x48], eax
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x54], eax
mov ebx, dword [ebp + 0x14]
mov eax, 0x4af9b8
test ebx, ebx
cmovne eax, ebx
push eax
call fcn.0048faa4
mov dword [ebp - 0x64], eax
mov esi, dword [ebp + 0x10]
mov eax, 0x4af9b8
test esi, esi
cmovne eax, esi
push eax
call fcn.0048faa4
mov dword [ebp - 0x50], eax
test ebx, ebx
mov eax, 0x4af9b8
cmovne eax, ebx
push eax
call fcn.0048faa4
mov dword [ebp - 0x4c], eax
test esi, esi
mov eax, 0x4af9b8
cmovne eax, esi
push eax
call fcn.0048faa4
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x23
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x98]
push eax
call fcn.00407620
mov esi, eax
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0x24
push eax
lea eax, [ebp - 0x6c]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0xa0]
push eax
call fcn.00407620
add esp, 0x48
push 0xffffffffffffffff
push 0
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x68]
push 0
push ecx
push 1
push 0
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push esi
mov esi, dword [ebp + 8]
push eax
push 0
push 0xffffffffffffffff
push 0
push esi
call fcn.00403eb0
push dword [ebp - 0xa0]
mov dword [ebp + 0x18], eax
call fcn.0048faf7
add esp, 0x48
push dword [ebp - 0x98]
call fcn.0048faf7
push dword [ebp - 0x6c]
call fcn.0048faf7
push dword [ebp - 0x4c]
call fcn.0048faf7
push dword [ebp - 0x50]
call fcn.0048faf7
push dword [ebp - 0x64]
call fcn.0048faf7
push dword [ebp - 0x54]
call fcn.0048faf7
push dword [ebp - 0x48]
call fcn.0048faf7
push dword [ebp - 0x74]
call fcn.0048faf7
push dword [ebp - 0x60]
call fcn.0048faf7
push dword [ebp - 0x70]
call fcn.0048faf7
push dword [ebp - 0x68]
call fcn.0048faf7
add esp, 0x2c
jmp 0x40ff38
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
push 0x4af9b8
call fcn.0048faa4
mov dword [ebp - 0x3c], eax
test ebx, ebx
mov eax, 0x4af9b8
cmovne eax, ebx
push eax
call fcn.0048faa4
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp + 0x10]
mov eax, 0x4af9b8
test ecx, ecx
cmovne eax, ecx
push eax
call fcn.0048faa4
mov dword [ebp - 0x5c], eax
push edi
call fcn.0048faa4
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0x29
push eax
lea eax, [ebp - 0x5c]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x9c]
push eax
call fcn.00407620
push 0xffffffffffffffff
push 0
push 0
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x2a
push ecx
movzx ecx, byte [ebp + 0x1c]
push ecx
push dword [ebp - 0x90]
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x10]
push ecx
push eax
lea eax, [ebp - 0x58]
push eax
push 5
push dword [ebp + 0x18]
push dword [ebp - 0x78]
push esi
call fcn.00403eb0
add esp, 0x64
push dword [ebp - 0x9c]
call fcn.0048faf7
push dword [ebp - 0x58]
call fcn.0048faf7
push dword [ebp - 0x5c]
call fcn.0048faf7
push dword [ebp - 0x44]
call fcn.0048faf7
push dword [ebp - 0x3c]
call fcn.0048faf7
add esp, 0x14
push dword [ebp - 0x24]
call fcn.0048faf7
push dword [ebp - 0x1c]
call fcn.0048faf7
push dword [ebp - 0x14]
call fcn.0048faf7
mov eax, dword [ebp - 0x10]
add esp, 0xc
push eax
call fcn.0048faf7
add esp, 4
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x88]
call fcn.00402130
push 0
add edi, 2
push edi
call fcn.0049110f
mov ebx, dword [ebp + 8]
add esp, 8
cmp word [eax + 2], 0
lea edi, [eax + 2]
jne 0x40fb60
push dword [ebp - 0x18]
call fcn.0048faf7
add esp, 4
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret