Function at 0x704bc8
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x43
push 0
push 0
dec ecx
jne 0x704bd0
lea eax, [ebp - 0x1e0]
mov edx, dword [0x408f98]
call fcn.00405b7c
xor eax, eax
push ebp
push 0x7053ef
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x705224
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x7b9d90], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
lea eax, [eax*4 + 0x7b9d98]
call fcn.00404ebc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xa
jne 0x704c15
mov dword [0x7b9d94], 0xffffffff
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x7053fc
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x704d34
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryInfoKeyA
test eax, eax
jne 0x704d26
mov eax, dword [ebp - 0x18]
dec eax
test eax, eax
jl 0x704d26
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00405508
push 0
push 0
push 0
push 0
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
call fcn.0040537c
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegEnumKeyExA
mov eax, dword [ebp - 0xc]
call fcn.0040537c
mov edx, 0x70540c
mov ecx, 4
call fcn.00409f64
test eax, eax
je 0x704d05
mov eax, dword [ebp - 0xc]
call fcn.0040537c
mov edx, 0x705414
mov ecx, 4
call fcn.00409f64
test eax, eax
jne 0x704d1a
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00405508
push ebp
mov eax, dword [ebp - 0xc]
call fcn.007047d8
pop ecx
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x704c9b
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey_1
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [0x7b9d90], 0
jle 0x704d44
push ebp
call fcn.007049a8
pop ecx
cmp dword [0x7b9d64], 0
jne 0x704dd5
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x7053fc
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
je 0x704d76
push ebp
call fcn.00704b30
pop ecx
mov dword [ebp - 8], 0x64
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x70541c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x704dd5
lea eax, [ebp - 0x1e8]
lea edx, [ebp - 0x85]
mov ecx, 0x65
call fcn.0040512c
mov eax, dword [ebp - 0x1e8]
lea edx, [ebp - 0x1e4]
call fcn.0040a134
mov edx, dword [ebp - 0x1e4]
mov eax, 0x7b9d64
call fcn.00404f10
cmp dword [0x7b9d64], 0
je 0x704e63
lea edx, [ebp - 0x1ec]
mov eax, dword [0x7b9d64]
call fcn.0040ae90
mov edx, dword [ebp - 0x1ec]
mov eax, 0x7b9d88
call fcn.00404f10
lea eax, [ebp - 0x1f4]
push eax
mov eax, dword [0x7b9d88]
call fcn.0040517c
mov edx, eax
sub edx, 3
mov ecx, 4
mov eax, dword [0x7b9d88]
call fcn.004053dc
mov eax, dword [ebp - 0x1f4]
lea edx, [ebp - 0x1f0]
call fcn.00409e34
mov eax, dword [ebp - 0x1f0]
mov edx, 0x70542c
call fcn.004052c8
jne 0x704e63
mov eax, dword [0x7b9d88]
call fcn.0040517c
mov edx, eax
sub edx, 4
mov eax, 0x7b9d88
call fcn.00405508
cmp dword [0x7b9d64], 0
jne 0x7051c2
cmp dword [0x7b9d8c], 0
jne 0x704f21
cmp dword [0x7b9d90], 0
jle 0x704ea8
cmp dword [0x7b9d94], 0xffffffff
je 0x704ea8
mov eax, 0x7b9d88
mov edx, dword [0x7b9d94]
mov edx, dword [edx*4 + 0x7b9d98]
call fcn.00404f10
jmp 0x704eb2
mov eax, 0x7b9d88
call fcn.00404ebc
cmp dword [0x7b9d88], 0
jne 0x704f03
mov dword [ebp - 8], 0x64
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x705434
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x704f03
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x86], 0
mov eax, 0x7b9d88
lea edx, [ebp - 0x85]
mov ecx, 0x65
call fcn.0040512c
cmp dword [0x7b9d88], 0
jne 0x704f9d
mov eax, 0x7b9d64
mov edx, 0x705448
call fcn.00404f10
jmp 0x704f9d
mov eax, dword [0x7b9d90]
dec eax
test eax, eax
jl 0x704f78
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov eax, dword [0x7b9d8c]
call fcn.0040537c
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax*4 + 0x7b9de8]
call fcn.0040537c
pop edx
call fcn.00409f24
test eax, eax
jne 0x704f70
mov eax, 0x7b9d88
mov edx, dword [ebp - 0x14]
mov edx, dword [edx*4 + 0x7b9d98]
call fcn.00404f10
jmp 0x704f78
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x704f36
cmp dword [0x7b9d88], 0
jne 0x704f9d
mov eax, 0x7b9d64
mov ecx, dword [0x7b9d8c]
mov edx, 0x705458
call fcn.004051c8
push ebp
call fcn.00704b30
pop ecx
cmp dword [0x7b9d88], 0
je 0x7051c2
lea eax, [ebp - 0x10]
call fcn.00404ebc
mov eax, dword [0x7b9d88]
call fcn.0040517c
mov edx, dword [0x7b9d88]
cmp byte [edx + eax - 1], 0x5c
jne 0x704fe0
mov eax, dword [0x7b9d88]
call fcn.0040517c
mov edx, eax
dec edx
mov eax, 0x7b9d88
call fcn.00405508
push dword [0x7b9d88]
push 0x705464
push 0x705448
lea eax, [ebp - 0x1f8]
mov edx, 3
call fcn.0040523c
mov eax, dword [ebp - 0x1f8]
lea ecx, [ebp - 0x1e0]
mov edx, 0x3f
call fcn.0040aca0
test eax, eax
jne 0x705049
push dword [0x7b9d88]
push 0x705464
push 0x705448
mov eax, 0x7b9d64
mov edx, 3
call fcn.0040523c
lea eax, [ebp - 0x1e0]
call fcn.0040ad14
jmp 0x705179
push dword [0x7b9d88]
push 0x705474
push 0x705448
lea eax, [ebp - 0x1fc]
mov edx, 3
call fcn.0040523c
mov eax, dword [ebp - 0x1fc]
lea ecx, [ebp - 0x1e0]
mov edx, 0x3f
call fcn.0040aca0
test eax, eax
jne 0x7050b2
push dword [0x7b9d88]
push 0x705474
push 0x705448
mov eax, 0x7b9d64
mov edx, 3
call fcn.0040523c
lea eax, [ebp - 0x1e0]
call fcn.0040ad14
jmp 0x705179
push dword [0x7b9d88]
push 0x705464
push 0x705480
lea eax, [ebp - 0x200]
mov edx, 3
call fcn.0040523c
mov eax, dword [ebp - 0x200]
lea ecx, [ebp - 0x1e0]
mov edx, 0x3f
call fcn.0040aca0
test eax, eax
jne 0x705179
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x204]
xor edx, edx
mov eax, dword [ebp - 0x1d4]
call fcn.0040adc8
mov eax, dword [ebp - 0x204]
mov ecx, 6
mov edx, 4
call fcn.004053dc
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
add al, 0xd0
sub al, 0xa
jae 0x70515f
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.004052c8
jbe 0x70515f
push dword [0x7b9d88]
push 0x705464
push dword [ebp - 0x1d4]
mov eax, 0x7b9d64
mov edx, 3
call fcn.0040523c
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00404f54
lea eax, [ebp - 0x1e0]
call fcn.0040acf0
test eax, eax
je 0x7050f0
lea eax, [ebp - 0x1e0]
call fcn.0040ad14
cmp dword [0x7b9d64], 0
jne 0x7051c2
cmp dword [0x7b9d8c], 0
jne 0x70519c
mov eax, 0x7b9d64
mov edx, 0x705448
call fcn.00404f10
jmp 0x7051c2
push dword [0x7b9d88]
push 0x705464
push 0x705494
mov eax, 0x7b9d64
mov edx, 3
call fcn.0040523c
push ebp
call fcn.00704b30
pop ecx
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x705498
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x7051fc
mov edx, 0x7054a0
lea eax, [ebp - 0x85]
mov ecx, 3
call fcn.0040b2f8
test eax, eax
je 0x705200
xor eax, eax
jmp 0x705202
mov al, 1
mov byte [0x7b9d84], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x70522b
cmp dword [ebp - 4], 0
je 0x705223
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret