Function at 0x407c3c
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xa50
mov eax, dword [0x41e004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x990], 0x401688
mov dword [ebp - 0x9b0], eax
mov edx, 0x4018d4
mov dword [ebp - 0x9ac], eax
mov ecx, 0x4018e4
mov dword [ebp - 0x9a8], eax
mov eax, 0x401658
mov dword [ebp - 0x9a4], eax
mov dword [ebp - 0x9a0], eax
mov dword [ebp - 0x99c], eax
mov dword [ebp - 0x998], eax
mov eax, 0x401678
mov dword [ebp - 0x994], eax
mov dword [ebp - 0x958], eax
mov eax, 0x401844
mov dword [ebp - 0x934], eax
mov dword [ebp - 0x930], eax
mov dword [ebp - 0x92c], eax
xor eax, eax
mov dword [ebp - 0xa50], eax
mov ebx, 0x401880
mov dword [ebp - 0xa4c], eax
mov dword [ebp - 0xa48], eax
mov eax, 0x401904
mov dword [ebp - 0xa44], eax
mov edi, 0x4018a4
mov dword [ebp - 0xa40], eax
mov esi, 0x4018c0
mov dword [ebp - 0xa3c], eax
mov dword [ebp - 0xa38], eax
mov eax, 0x401678
mov dword [ebp - 0x98c], 0x401694
mov dword [ebp - 0x988], 0x4016b8
mov dword [ebp - 0x984], 0x4016c8
mov dword [ebp - 0x980], 0x4016d8
mov dword [ebp - 0x97c], 0x4016e4
mov dword [ebp - 0x978], 0x4016f4
mov dword [ebp - 0x974], 0x401704
mov dword [ebp - 0x970], 0x401710
mov dword [ebp - 0x96c], 0x401720
mov dword [ebp - 0x968], 0x40172c
mov dword [ebp - 0x964], 0x40173c
mov dword [ebp - 0x960], 0x40174c
mov dword [ebp - 0x95c], 0x401760
mov dword [ebp - 0x954], 0x401788
mov dword [ebp - 0x950], 0x401794
mov dword [ebp - 0x94c], 0x4017ac
mov dword [ebp - 0x948], 0x4017c0
mov dword [ebp - 0x944], 0x4017d0
mov dword [ebp - 0x940], 0x4017dc
mov dword [ebp - 0x93c], 0x4017f0
mov dword [ebp - 0x938], 0x40181c
mov dword [ebp - 0x928], 0x401864
mov dword [ebp - 0x924], ebx
mov dword [ebp - 0x920], edi
mov dword [ebp - 0x91c], esi
mov dword [ebp - 0x918], edx
mov dword [ebp - 0x914], ecx
mov dword [ebp - 0xa34], eax
mov dword [ebp - 0xa30], 0x40191c
mov dword [ebp - 0xa2c], 0x401938
mov dword [ebp - 0xa28], 0x4016b8
mov dword [ebp - 0xa24], 0x4016c8
mov dword [ebp - 0xa20], 0x4016d8
mov dword [ebp - 0xa1c], 0x4016e4
mov dword [ebp - 0xa18], 0x4016f4
mov dword [ebp - 0xa14], 0x401704
mov dword [ebp - 0xa10], 0x401710
mov dword [ebp - 0xa0c], 0x401720
mov dword [ebp - 0xa08], 0x40172c
mov dword [ebp - 0xa04], 0x40173c
mov dword [ebp - 0xa00], 0x40174c
mov dword [ebp - 0x9fc], 0x401760
mov dword [ebp - 0x9f8], eax
mov dword [ebp - 0x9f4], 0x401968
mov dword [ebp - 0x9f0], 0x40197c
mov dword [ebp - 0x9ec], 0x401990
mov eax, 0x401844
mov dword [ebp - 0x9c0], edi
mov edi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
push 3
mov dword [ebp - 0x9bc], esi
mov dword [ebp - 0x9e8], 0x4019a0
mov dword [ebp - 0x9e4], 0x4017d0
mov dword [ebp - 0x9e0], 0x4017dc
mov dword [ebp - 0x9dc], 0x4017f0
mov dword [ebp - 0x9d8], 0x40181c
mov dword [ebp - 0x9d4], eax
mov dword [ebp - 0x9d0], eax
mov dword [ebp - 0x9cc], eax
mov dword [ebp - 0x9c8], 0x401864
mov dword [ebp - 0x9c4], ebx
mov dword [ebp - 0x9b8], edx
mov dword [ebp - 0x9b4], ecx
pop esi
push esi
push 0x4015e0
push 0x4019b0
lea eax, [ebp - 0x908]
push 0x400
push eax
call fcn.00407674
add esp, 0x14
lea eax, [ebp - 0x910]
mov bh, 1
mov bl, bh
push eax
push 0x2001f
push 0
lea eax, [ebp - 0x908]
push eax
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x408058
push 0x40
push eax
lea eax, [ebp - 0x44]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x90c], 0x40
lea eax, [ebp - 0x90c]
push eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0
push 0x4019bc
push dword [ebp - 0x910]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x407fed
mov eax, dword [ebp - 0x90c]
add eax, 0xfffffffe
cmp eax, 0x3d
ja 0x407fed
push dword [ebp + esi*4 - 0x9b0]
lea eax, [ebp - 0x44]
push eax
call edi
test eax, eax
je 0x407fed
cmp esi, 8
jne 0x407feb
push 0x4019dc
lea eax, [ebp - 0x44]
push eax
call edi
test eax, eax
je 0x407fed
xor bh, bh
push 0x40
pop eax
push eax
mov dword [ebp - 0x90c], eax
lea eax, [ebp - 0x44]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x90c]
push eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0
push 0x4019e8
push dword [ebp - 0x910]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40804c
mov eax, dword [ebp - 0x90c]
add eax, 0xfffffffe
cmp eax, 0x3d
ja 0x40804c
push dword [ebp + esi*4 - 0xa50]
lea eax, [ebp - 0x44]
push eax
call edi
neg eax
sbb al, al
not al
and bl, al
push dword [ebp - 0x910]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
push 0x401a08
lea eax, [ebp - 0x108]
push 0x40
push eax
call fcn.00407674
add esp, 0x10
test bh, bh
je 0x4080a7
push 0x20
lea eax, [ebp - 0x88]
push eax
push 0x403bbc
lea edx, [ebp - 0x108]
call fcn.0040c604
test eax, eax
js 0x4080a7
lea eax, [ebp - 0x88]
push eax
push 0x403bbc
lea edx, [ebp - 0x108]
call fcn.0040c682
test bl, bl
je 0x4080dc
push 0x20
lea eax, [ebp - 0x88]
mov ebx, 0x403bcc
push eax
push ebx
lea edx, [ebp - 0x108]
call fcn.0040c604
test eax, eax
js 0x4080dc
lea eax, [ebp - 0x88]
push eax
push ebx
lea edx, [ebp - 0x108]
call fcn.0040c682
inc esi
cmp esi, 0x28
jl 0x407f30
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041ce8b
mov esp, ebp
pop ebp
ret