Function at 0x42fce0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov edi, ecx
mov eax, dword [0x57f040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, 0x104
lea esi, [ebp - 0x20]
mov dword [esi], eax
lea ebx, [ecx + 0x18]
push eax
push ebx
call fcn.00459560
add esp, 8
mov ecx, dword [edi + 0x24]
mov edx, dword [edi + 0x3c]
sub esp, 0x20
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
inc dword [edi + 0x3c]
test eax, eax
je 0x42fd78
add edi, 0x30
mov ecx, edi
call fcn.00531280
mov esi, dword [ebp + 8]
mov dword [esi], 0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e71b0
mov eax, esi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret 4
xorps xmm0, xmm0
lea eax, [ebp - 0x2c]
movsd qword [eax], xmm0
mov dword [eax + 8], 0
mov byte [eax + 0xb], cl
jmp 0x42fde2
mov esi, ebx
movsx ebx, byte [edi + 0x13]
mov edx, ebx
test ebx, ebx
jns 0x42fd87
mov edx, dword [edi + 0xc]
xor eax, eax
dec eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
lea ecx, [edx + 1]
cmp ecx, 0x7ffffff8
jae 0x42ff27
cmp ecx, 4
jbe 0x42fd62
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x38], edx
mov ebx, ecx
or ebx, 3
inc ebx
js 0x42ff22
mov esi, ecx
lea eax, [ebx + ebx]
push eax
call fcn.004e6c0e
add esp, 4
or ebx, 0x80000000
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], esi
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
lea ecx, [edi + 8]
test bl, bl
jns 0x42fdeb
mov ecx, dword [ecx]
lea ebx, [eax + edx*2]
cmp ecx, eax
jb 0x42fdfa
cmp ebx, ecx
ja 0x42ff13
test edx, edx
je 0x42fe0b
add edx, edx
push edx
push ecx
push eax
call fcn.004ea680
add esp, 0xc
cmp ebx, 0x564eba
ja 0x42fe21
lea eax, [ebx + 2]
cmp eax, 0x564eba
ja 0x42ff13
mov dword [ebx], 0x5c
lea ebx, [ebp - 0x2c]
movsx eax, byte [ebx + 0xb]
test eax, eax
cmovs eax, dword [ebx + 4]
mov ecx, dword [ebx]
cmovns ecx, ebx
mov word [ecx + eax*2], 0
movsx eax, byte [edi + 0x23]
test eax, eax
jns 0x42fe4d
mov eax, dword [edi + 0x1c]
mov esi, dword [edi + 0x18]
mov ecx, ebx
push eax
push esi
call fcn.004a3200
cmp byte [ebp - 0x21], 0
jns 0x42fe5f
mov ebx, dword [ebp - 0x2c]
push 0x28
call fcn.004e6c0e
add esp, 4
mov esi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x1c]
push ebx
call fcn.00412a10
mov ebx, dword [edi + 4]
mov dword [esi], fcn.0042f910
mov dword [esi + 4], ebx
mov eax, dword [ebp - 0x30]
mov dword [esi + 8], eax
lea edi, [esi + 0xc]
mov ecx, edi
call fcn.00456bb0
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x34], esi
add esi, 0x18
cmp byte [edx + 0xb], 0
js 0x42fef6
mov eax, dword [ebp - 0x14]
mov dword [esi + 8], eax
movsd xmm0, qword [ebp - 0x1c]
movsd qword [esi], xmm0
mov ecx, edi
push dword [ebp - 0x30]
push edx
push ebx
call fcn.00456c80
mov edi, dword [ebp - 0x34]
mov dword [edi + 0x24], eax
cmp byte [ebp - 0x11], 0
jns 0x42fed7
push dword [ebp - 0x1c]
call fcn.004e6c3e
add esp, 4
mov esi, dword [ebp + 8]
mov dword [esi], edi
cmp byte [ebp - 0x21], 0
jns 0x42fd4c
push dword [ebp - 0x2c]
call fcn.004e6c3e
add esp, 4
jmp 0x42fd4c
mov ecx, esi
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.004a3060
cmp byte [ebp - 0x11], 0
js 0x42ff0e
lea edx, [ebp - 0x1c]
jmp 0x42feb4
mov edx, dword [ebp - 0x1c]
jmp 0x42feb4
push str....._third_partylibc_srcinclude__stringchar_traits.h:223:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
push 0x55eb93
call fcn.00516c70
call fcn.00516120
lea ecx, [ebp - 0x2c]
call fcn.00516100
int3