Function at 0x3001a4ec
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xbc
mov eax, dword [0x30034be8]
push ebx
push esi
push dword [ebp + 0x7c]
mov dword [ebp + 0x50], eax
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 0x5c]
xor ebx, ebx
mov dword [ebp - 0x5c], ebx
call fcn.3001a445
mov esi, eax
cmp esi, ebx
je 0x3001a52b
push 0x30009b14
call fcn.3000fdf9
pop ecx
jmp 0x3001a820
push edi
mov edi, dword [ebp + 0x60]
push dword [ebp - 0x60]
mov ecx, edi
call fcn.3000cd95
mov esi, eax
cmp esi, ebx
je 0x3001a549
push 0x30009af4
jmp 0x3001a819
push dword [ebp - 0x60]
mov ecx, dword [ebp + 0x64]
call fcn.3000cd95
mov esi, eax
cmp esi, ebx
je 0x3001a564
push 0x30001584
jmp 0x3001a819
push dword [ebp - 0x60]
mov ecx, dword [ebp + 0x68]
call fcn.3000cd95
mov esi, eax
cmp esi, ebx
je 0x3001a57f
push 0x30009ad0
jmp 0x3001a819
push dword [ebp - 0x60]
mov ecx, dword [ebp + 0x6c]
call fcn.3000cd95
mov esi, eax
cmp esi, ebx
je 0x3001a59a
push 0x30009ab0
jmp 0x3001a819
push dword [ebp + 0x7c]
lea eax, [ebp - 0x54]
push 0x51
push eax
push dword [ebp + 0x5c]
call fcn.3001a1e8
lea eax, [ebp - 0x5c]
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x54]
push eax
push dword [0x300341b8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
cmp esi, ebx
je 0x3001a5d5
push 0x30009854
jmp 0x3001a819
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x58]
push ecx
mov dword [ebp - 0x58], eax
mov eax, dword [edi]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push eax
push ebx
push ebx
push 0x30008e28
push dword [ebp - 0x5c]
call edi
mov esi, eax
cmp esi, 2
je 0x3001a609
cmp esi, ebx
je 0x3001a609
push 0x30009a78
jmp 0x3001a819
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
lea ecx, [ebp - 0x58]
push ecx
push eax
push ebx
push ebx
push 0x30008e50
push dword [ebp - 0x5c]
call edi
mov esi, eax
cmp esi, 2
je 0x3001a63a
cmp esi, ebx
je 0x3001a63a
push 0x30009a44
jmp 0x3001a819
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push eax
call fcn.3000dfb9
test eax, eax
jne 0x3001a65c
mov esi, 0x65b
push 0x30009a24
jmp 0x3001a819
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
lea ecx, [ebp - 0x58]
push ecx
push eax
push ebx
push ebx
push 0x30008e5c
push dword [ebp - 0x5c]
call edi
mov esi, eax
cmp esi, 2
je 0x3001a68d
cmp esi, ebx
je 0x3001a68d
push 0x300099ec
jmp 0x3001a819
mov eax, dword [ebp + 0x78]
lea ecx, [ebp - 0x58]
push ecx
push eax
push ebx
push ebx
push 0x30008e6c
push dword [ebp - 0x5c]
mov dword [eax], ebx
mov dword [ebp - 0x58], 4
call edi
mov esi, eax
cmp esi, 2
je 0x3001a6bf
cmp esi, ebx
je 0x3001a6bf
push 0x300099b8
jmp 0x3001a819
mov esi, dword [ebp + 0x68]
mov eax, dword [esi]
mov dword [ebp + 0x64], ebx
jmp 0x3001a6cf
inc dword [ebp + 0x64]
add eax, 2
push 0x25
push eax
call fcn.30015a7f
cmp eax, ebx
jne 0x3001a6c9
lea ecx, [ebp - 0x68]
call fcn.3000cc94
push dword [esi + 4]
lea ecx, [ebp - 0x68]
call fcn.3000cd95
mov esi, eax
cmp esi, ebx
je 0x3001a70c
push 0x30009990
call fcn.3000fdf9
pop ecx
lea ecx, [ebp - 0x68]
call fcn.3000cc9e
jmp 0x3001a81f
mov esi, dword [ebp + 0x68]
push dword [esi]
lea ecx, [ebp - 0x68]
call fcn.3000ce85
mov eax, dword [ebp + 0x64]
mov ecx, dword [esi + 4]
imul eax, eax, 0x104
shr eax, 1
add eax, ecx
push eax
mov ecx, esi
call fcn.3000cd95
mov esi, eax
cmp esi, ebx
jne 0x3001a6f4
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push eax
push dword [ebp - 0x68]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x3001a758
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x3001a75a
xor esi, esi
cmp esi, ebx
je 0x3001a765
push 0x30009970
jmp 0x3001a6f9
lea ecx, [ebp - 0x68]
call fcn.3000cc9e
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax]
lea ecx, [ebp - 0x58]
push ecx
push eax
push ebx
push ebx
push 0x30008e3c
push dword [ebp - 0x5c]
call edi
mov esi, eax
cmp esi, 2
jne 0x3001a7aa
mov ecx, dword [ebp + 0x6c]
push 0x30008ec8
call fcn.3000ce85
mov esi, eax
cmp esi, ebx
je 0x3001a7b5
push 0x3000993c
jmp 0x3001a819
cmp esi, ebx
je 0x3001a7b5
push 0x30009904
jmp 0x3001a819
lea eax, [ebp - 0x58]
push eax
push dword [ebp + 0x70]
mov dword [ebp - 0x58], 4
push ebx
push ebx
push 0x30008e78
push dword [ebp - 0x5c]
call edi
mov esi, eax
cmp esi, 2
jne 0x3001a805
mov eax, dword [ebp + 0x70]
mov dword [eax], ebx
lea eax, [ebp - 0x58]
push eax
push dword [ebp + 0x74]
mov dword [ebp - 0x58], 4
push ebx
push ebx
push 0x30008e9c
push dword [ebp - 0x5c]
call edi
mov esi, eax
cmp esi, 2
jne 0x3001a810
mov eax, dword [ebp + 0x74]
mov dword [eax], ebx
xor esi, esi
jmp 0x3001a81f
cmp esi, ebx
je 0x3001a7db
push 0x300098c4
jmp 0x3001a819
cmp esi, ebx
je 0x3001a81f
push 0x30009890
call fcn.3000fdf9
pop ecx
pop edi
cmp dword [ebp - 0x5c], ebx
je 0x3001a82e
push dword [ebp - 0x5c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x50]
mov eax, esi
pop esi
pop ebx
call fcn.3001f57d
add ebp, 0x54
leave
ret 0x24