Function at 0x41d7b1
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ecx]
push ebx
push esi
xor esi, esi
cmp eax, esi
push edi
mov dword [ebp - 8], ecx
jne 0x41d858
cmp dword [0x441ff4], esi
je 0x41db42
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x41d7f7
mov ecx, dword [0x441fdc]
cmp dword [ecx], esi
jne 0x41db42
cmp eax, 1
jle 0x41db42
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43cbe4], esi
mov ebx, eax
jge 0x41d819
mov eax, dword [0x441fa0]
mov dword [0x43cbe4], eax
call fcn.0041c4b1
test eax, eax
je 0x41d84b
push 1
push dword [0x43cbe4]
push 0x177
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_registry_reg.cpp
call fcn.0041c4e1
push str.Reg.GetValue__key_is_NULL_n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
jmp 0x41da65
mov ebx, dword [ebp + 0x10]
lea ecx, [ebp + 0x10]
push ebx
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push esi
push ecx
push esi
push dword [ebp + 8]
push eax
call edi
cmp eax, esi
mov dword [ebp - 4], eax
je 0x41d91a
cmp dword [0x441ff4], esi
je 0x41db42
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 2
je 0x41d8a8
mov ecx, dword [0x441fdc]
cmp dword [ecx], esi
jne 0x41db42
cmp eax, 2
jle 0x41db42
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call edi
cmp dword [0x43cbe4], esi
mov dword [ebp + 0x14], eax
jge 0x41d8cd
mov eax, dword [0x441fa0]
mov dword [0x43cbe4], eax
call fcn.0041c4b1
test eax, eax
je 0x41d90b
push 2
push dword [0x43cbe4]
push 0x17d
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_registry_reg.cpp
call fcn.0041c4e1
add esp, 0x10
call edi
push eax
push dword [ebp - 4]
push dword [ebp + 8]
push str.Reg.GetValue__failed_to_query_size_for__s__ret_d__error_d_n
call fcn.0041c506
add esp, 0x10
call fcn.0041c4cc
push ebx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push dword [ebp + 0x14]
jmp 0x41da65
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x10], eax
je 0x41d9b3
cmp dword [0x441ff4], esi
je 0x41db42
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 2
je 0x41d955
mov ecx, dword [0x441fdc]
cmp dword [ecx], esi
jne 0x41db42
cmp eax, 2
jle 0x41db42
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43cbe4], esi
mov ebx, eax
jge 0x41d977
mov eax, dword [0x441fa0]
mov dword [0x43cbe4], eax
call fcn.0041c4b1
test eax, eax
je 0x41d84b
push 2
push dword [0x43cbe4]
push 0x183
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_registry_reg.cpp
call fcn.0041c4e1
push dword [ebp + 0xc]
push dword [ebp + 0x10]
push str.Reg.GetValue__type__d_returned_is_different_from_what_we_want__d_n
call fcn.0041c506
add esp, 0x1c
jmp 0x41d846
mov eax, dword [ebx]
inc eax
push eax
call sub.MSVCRT.dll_malloc
pop ecx
cmp eax, esi
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
jne 0x41da70
cmp dword [0x441ff4], esi
je 0x41db42
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 2
je 0x41d9f9
mov ecx, dword [0x441fdc]
cmp dword [ecx], esi
jne 0x41db42
cmp eax, 2
jle 0x41db42
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 8], eax
call edi
cmp dword [0x43cbe4], esi
mov dword [ebp + 0x14], eax
jge 0x41da1f
mov eax, dword [0x441fa0]
mov dword [0x43cbe4], eax
call fcn.0041c4b1
test eax, eax
je 0x41da59
push 2
push dword [0x43cbe4]
push 0x189
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_registry_reg.cpp
call fcn.0041c4e1
add esp, 0x10
call edi
push eax
push dword [ebx]
push str.Reg.GetValue__failed_to_allocate_memory_size_d__err_d_n
call fcn.0041c506
add esp, 0xc
call fcn.0041c4cc
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x41db42
mov ecx, dword [ebx]
inc ecx
push ecx
push esi
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [ebp + 0x14]
add esp, 0xc
push ebx
push dword [eax]
mov eax, dword [ebp - 8]
push esi
push esi
push dword [ebp + 8]
push dword [eax]
call edi
test eax, eax
je 0x41db46
cmp dword [0x441ff4], esi
je 0x41db33
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 2
je 0x41dabf
mov ecx, dword [0x441fdc]
cmp dword [ecx], esi
jne 0x41db33
cmp eax, 2
jle 0x41db33
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0xc], eax
call edi
cmp dword [0x43cbe4], esi
mov dword [ebp - 8], eax
jge 0x41dae5
mov eax, dword [0x441fa0]
mov dword [0x43cbe4], eax
call fcn.0041c4b1
test eax, eax
je 0x41db21
push 2
push dword [0x43cbe4]
push 0x18f
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_registry_reg.cpp
call fcn.0041c4e1
add esp, 0x10
call edi
push eax
push esi
push dword [ebp + 8]
push str.Reg.GetValue__failed_to_query_value_for__s__ret_d__error_d_n
call fcn.0041c506
add esp, 0x10
call fcn.0041c4cc
push dword [ebp + 0xc]
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebp + 0x14]
push dword [edi]
call sub.MSVCRT.dll_free
mov dword [ebx], esi
pop ecx
mov dword [edi], esi
xor eax, eax
jmp 0x41db49
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0x10