Function at 0x4a1e7f
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x438
mov eax, 0x59e571
call fcn.004fed86
xor ebx, ebx
xor esi, esi
push ebx
inc esi
push esi
mov edi, ecx
call fcn.00522090
pop ecx
pop ecx
cmp eax, ebx
je 0x4a1eac
lea ecx, [ebp - 0x388]
mov dword [eax], ecx
jmp 0x4a1eae
xor eax, eax
mov dword [ebp - 0x388], eax
mov dword [ebp - 4], ebx
call fcn.004a714c
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x370], ebx
mov dword [ebp - 4], esi
lea esi, [ebp - 0x338]
call fcn.00406670
push ebx
lea esi, [ebp - 0x3b8]
mov byte [ebp - 4], 2
call fcn.004ac850
push 0x5d906c
lea esi, [ebp - 0x3a0]
mov byte [ebp - 4], 3
call fcn.004ac960
cmp dword [ebp + 8], ebx
je 0x4a1f2d
mov eax, esi
push eax
mov eax, str.support_env
lea esi, [ebp - 0x358]
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.004ad940
lea esi, [ebp - 0x3b8]
mov byte [ebp - 4], 5
call fcn.004acc30
mov byte [ebp - 4], 4
jmp 0x4a1f5d
lea eax, [ebp - 0x3a0]
push eax
mov eax, str.reject_env
lea esi, [ebp - 0x358]
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.004ad940
lea esi, [ebp - 0x3b8]
mov byte [ebp - 4], 7
call fcn.004acc30
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x358]
call fcn.004acb90
lea ecx, [ebp - 0x3a0]
mov byte [ebp - 4], 3
call fcn.004acb90
cmp byte [ebp - 0x3b0], 4
jne 0x4a2011
lea esi, [ebp - 0x360]
lea ecx, [ebp - 0x3b8]
call fcn.004accc0
lea ecx, [ebp - 0x3a8]
push ecx
mov edi, eax
mov byte [ebp - 4], 8
call fcn.004090d0
mov byte [ebp - 4], 9
cmp dword [eax + 0x18], 0x10
jb 0x4a1fb6
mov edi, dword [eax + 4]
jmp 0x4a1fb9
lea edi, [eax + 4]
cmp edi, ebx
je 0x4a1fcf
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
cmp esi, 0x3fffffff
jle 0x4a1fd3
xor eax, eax
jmp 0x4a1fea
lea eax, [esi + esi]
call fcn.00503a00
mov eax, esp
push 0xfde9
push esi
push edi
push eax
call fcn.004348d0
mov edx, eax
lea edi, [ebp - 0x338]
call fcn.00406780
lea ecx, [ebp - 0x3a8]
call fcn.00409b60
lea ecx, [ebp - 0x360]
mov byte [ebp - 4], 3
call fcn.00409b60
mov ecx, dword [ebp - 0x338]
mov eax, dword [ecx - 0xc]
cmp eax, ebx
jne 0x4a204b
lea ecx, [ebp - 0x3b8]
mov byte [ebp - 4], 2
call fcn.004acb90
lea ecx, [ebp - 0x338]
call fcn.00406760
lea esi, [ebp - 0x388]
call fcn.004a6c90
xor eax, eax
inc eax
jmp 0x4a2701
push 0x5d9aac
lea eax, [ebp - 0x3f0]
push eax
call fcn.00410b90
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x3dc]
mov eax, dword [eax]
mov dword [ebp - 0x368], eax
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x36c], eax
mov eax, dword [ebp - 0x3dc]
mov dword [ebp - 0x3c0], eax
mov eax, dword [ebp - 0x3f0]
lea esi, [ebp - 0x3c4]
lea edi, [ebp - 0x36c]
mov dword [ebp - 0x3c4], eax
call fcn.0042d750
test al, al
je 0x4a234e
mov esi, edi
call fcn.00418f70
lea ecx, [ebp - 0x340]
push ecx
mov ecx, dword [eax]
call fcn.004066b0
lea esi, [ebp - 0x324]
call fcn.00406670
lea esi, [ebp - 0x328]
call fcn.00406670
lea esi, [ebp - 0x364]
call fcn.00406670
push 0x5d9424
lea eax, [ebp - 0x414]
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x340]
push eax
call fcn.00410b90
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x400]
mov eax, dword [eax]
mov dword [ebp - 0x32c], eax
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x330], eax
mov eax, dword [ebp - 0x400]
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x414]
lea esi, [ebp - 0x3cc]
lea edi, [ebp - 0x330]
mov dword [ebp - 0x3cc], eax
call fcn.0042d750
test al, al
je 0x4a21a6
test ebx, ebx
jne 0x4a215a
mov esi, edi
call fcn.00418f70
lea edi, [ebp - 0x324]
jmp 0x4a2188
cmp ebx, 1
jne 0x4a2172
lea esi, [ebp - 0x330]
call fcn.00418f70
lea edi, [ebp - 0x328]
jmp 0x4a2188
cmp ebx, 2
jne 0x4a218f
lea esi, [ebp - 0x330]
call fcn.00418f70
lea edi, [ebp - 0x364]
mov edx, dword [eax]
call fcn.00406780
lea edi, [ebp - 0x41c]
lea esi, [ebp - 0x330]
inc ebx
call fcn.00418fa0
jmp 0x4a211a
cmp ebx, 3
jne 0x4a22ba
mov eax, dword [ebp - 0x364]
add eax, 0xfffffff0
call fcn.004073f0
lea esi, [eax + 0x10]
mov dword [ebp - 0x334], esi
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
call fcn.004073f0
lea edi, [eax + 0x10]
mov dword [ebp - 0x33c], edi
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
call fcn.004073f0
add eax, 0x10
mov dword [ebp - 0x3bc], eax
add eax, 0xfffffff0
mov byte [ebp - 4], 0x14
call fcn.004073f0
add eax, 0x10
mov dword [ebp - 0x398], eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x15
call fcn.004073f0
add eax, 0x10
mov dword [ebp - 0x394], eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0x16
call fcn.004073f0
add eax, 0x10
lea ecx, [ebp - 0x3bc]
mov dword [ebp - 0x390], eax
call fcn.00406760
lea ecx, [ebp - 0x33c]
call fcn.00406760
lea ecx, [ebp - 0x334]
call fcn.00406760
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x374]
lea ecx, [ebp - 0x398]
push ecx
lea esi, [eax + 4]
push dword [esi]
push eax
call fcn.004a757b
mov ecx, 0x15555555
sub ecx, dword [ebp - 0x370]
cmp ecx, 1
jb 0x4a230d
inc dword [ebp - 0x370]
mov dword [esi], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
lea ecx, [ebp - 0x390]
call fcn.00406760
lea ecx, [ebp - 0x394]
call fcn.00406760
lea ecx, [ebp - 0x398]
call fcn.00406760
lea edi, [ebp - 0x34c]
lea esi, [ebp - 0x36c]
call fcn.00418fa0
lea eax, [ebp - 0x414]
call fcn.00410cd0
lea ecx, [ebp - 0x364]
call fcn.00406760
lea ecx, [ebp - 0x328]
call fcn.00406760
lea ecx, [ebp - 0x324]
call fcn.00406760
lea ecx, [ebp - 0x340]
mov byte [ebp - 4], 0xa
call fcn.00406760
xor ebx, ebx
jmp 0x4a207a
push str.list_T__too_long
lea ecx, [ebp - 0x360]
call fcn.00409af0
lea eax, [ebp - 0x360]
push eax
lea ecx, [ebp - 0x444]
mov byte [ebp - 4], 0x18
call fcn.0040a790
push 0x607bb8
lea eax, [ebp - 0x444]
push eax
mov dword [ebp - method.std::logic_error.virtual_0], vtable.std::length_error.0
call fcn.004fe8eb
cmp dword [ebp - 0x370], ebx
jne 0x4a2369
xor edi, edi
inc edi
lea eax, [ebp - 0x3f0]
call fcn.00410cd0
jmp 0x4a26da
mov eax, dword [ebp - 0x374]
mov ebx, dword [eax]
mov eax, dword [ebp - 0x388]
mov dword [ebp - 0x32c], ebx
mov dword [ebp - 0x330], eax
mov edi, dword [ebp - 0x330]
mov esi, dword [ebp - 0x374]
test edi, edi
je 0x4a239b
cmp edi, dword [ebp - 0x388]
je 0x4a23a0
call fcn.004f825e
cmp ebx, esi
je 0x4a26c3
test edi, edi
jne 0x4a240c
call fcn.004f825e
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x4a23bd
call fcn.004f825e
lea eax, [ebp - 0x350]
lea edi, [ebx + 8]
push eax
call fcn.004a2724
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x350]
cmp dword [eax - 0xc], 0
je 0x4a2671
mov eax, dword [ebp - 0x34c]
cmp dword [eax - 0xc], 0
je 0x4a2671
lea eax, [ebp - 0x350]
push eax
mov ecx, str.HKEY_CLASSES_ROOT
call fcn.00406810
test eax, eax
jne 0x4a2410
mov esi, bind
jmp 0x4a2482
mov eax, dword [edi]
jmp 0x4a23b3
lea eax, [ebp - 0x350]
push eax
mov ecx, str.HKEY_CURRENT_USER
call fcn.00406810
test eax, eax
jne 0x4a242c
mov esi, reloc.WS2_32.dll_accept
jmp 0x4a2482
lea eax, [ebp - 0x350]
push eax
mov ecx, str.HKEY_LOCAL_MACHINE
call fcn.00406810
test eax, eax
jne 0x4a2448
mov esi, reloc.WS2_32.dll_bind
jmp 0x4a2482
lea eax, [ebp - 0x350]
push eax
mov ecx, str.HKEY_USERS
call fcn.00406810
test eax, eax
jne 0x4a2464
mov esi, reloc.WS2_32.dll_closesocket
jmp 0x4a2482
lea eax, [ebp - 0x350]
push eax
mov ecx, str.HKEY_CURRENT_CONFIG
call fcn.00406810
test eax, eax
jne 0x4a2671
mov esi, htons
mov edi, 0x20019
call fcn.0049c555
test eax, eax
je 0x4a2495
mov edi, 0x20119
xor eax, eax
mov dword [ebp - 0x340], eax
cmp dword [ebp + 8], eax
je 0x4a257f
push 0x103
push eax
mov byte [ebp - 0x118], al
lea eax, [ebp - 0x117]
push eax
call fcn.004fe380
add esp, 0xc
lea eax, [ebp - 0x324]
push eax
push edi
push 0
push dword [ebp - 0x34c]
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4a2536
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x33c]
xor edi, edi
push eax
inc edi
push 0
lea esi, [ebp - 0x348]
mov dword [ebp - 0x33c], edi
mov dword [ebp - 0x334], 0x104
call fcn.0040a6c0
push eax
push dword [ebp - 0x324]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4a2528
mov dword [ebp - 0x340], edi
or eax, 0xffffffff
lea esi, [ebp - 0x348]
call fcn.0040a6e0
cmp dword [ebp - 0x324], 0
je 0x4a254b
push dword [ebp - 0x324]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp - 0x340]
test edi, edi
je 0x4a261a
lea ecx, [ebp - 0x348]
call fcn.00406760
lea ecx, [ebp - 0x34c]
call fcn.00406760
lea ecx, [ebp - 0x350]
call fcn.00406760
jmp 0x4a2359
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x320], ax
lea eax, [ebp - 0x31e]
push eax
xor ebx, ebx
call fcn.004fe380
add esp, 0xc
lea eax, [ebp - 0x328]
push eax
push edi
xor edi, edi
push edi
push dword [ebp - 0x34c]
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, edi
jne 0x4a25f8
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x33c]
push eax
push edi
push dword [ebp - 0x348]
mov dword [ebp - 0x33c], edi
push dword [ebp - 0x328]
mov dword [ebp - 0x334], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, edi
jne 0x4a25f8
inc ebx
cmp dword [ebp - 0x328], edi
je 0x4a260c
push dword [ebp - 0x328]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebx, edi
jne 0x4a269b
mov ebx, dword [ebp - 0x32c]
mov eax, dword [ebp - 0x330]
test eax, eax
jne 0x4a266d
call fcn.004f825e
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x4a2635
call fcn.004f825e
mov eax, dword [ebx]
lea ecx, [ebp - 0x348]
mov dword [ebp - 0x32c], eax
mov byte [ebp - 4], 0xa
call fcn.00406760
lea ecx, [ebp - 0x34c]
call fcn.00406760
lea ecx, [ebp - 0x350]
call fcn.00406760
mov ebx, dword [ebp - 0x32c]
jmp 0x4a2383
mov eax, dword [eax]
jmp 0x4a262b
lea ecx, [ebp - 0x348]
mov byte [ebp - 4], 0xa
call fcn.00406760
lea ecx, [ebp - 0x34c]
call fcn.00406760
lea ecx, [ebp - 0x350]
call fcn.00406760
jmp 0x4a2383
lea ecx, [ebp - 0x348]
call fcn.00406760
lea ecx, [ebp - 0x34c]
call fcn.00406760
lea ecx, [ebp - 0x350]
call fcn.00406760
xor edi, edi
jmp 0x4a2359
lea eax, [ebp - 0x3f0]
call fcn.00410cd0
xor eax, eax
xor ebx, ebx
cmp dword [ebp + 8], ebx
sete al
mov edi, eax
lea ecx, [ebp - 0x3b8]
mov byte [ebp - 4], 2
call fcn.004acb90
lea ecx, [ebp - 0x338]
call fcn.00406760
lea esi, [ebp - 0x388]
call fcn.004a6c90
mov eax, edi
lea esp, [ebp - 0x454]
call fcn.004fedd0
ret