Function at 0x4308a0
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 [0x587040]
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.0045a970
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 0x430938
add edi, 0x30
mov ecx, edi
call fcn.005371b0
mov esi, dword [ebp + 8]
mov dword [esi], 0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ecef0
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 0x43099d
mov dword [ebp - 0x30], ebx
movsx ebx, byte [edi + 0x13]
mov edx, ebx
test ebx, ebx
jns 0x430948
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 0x430b6f
cmp ecx, 4
jbe 0x430922
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], edx
mov esi, ecx
or esi, 3
inc esi
js 0x430b6a
mov ebx, ecx
lea eax, [esi + esi]
push eax
call fcn.004ec94e
add esp, 4
or esi, 0x80000000
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ebx
mov edx, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x38]
lea ecx, [edi + 8]
test bl, bl
jns 0x4309a6
mov ecx, dword [ecx]
lea esi, [eax + edx*2]
cmp ecx, eax
mov ebx, edx
setb dl
cmp esi, ecx
setbe dh
or dh, dl
je 0x430b5b
test ebx, ebx
je 0x4309ce
add ebx, ebx
push ebx
push ecx
push eax
call fcn.004f03c0
add esp, 0xc
lea eax, [esi + 2]
mov ecx, 0x56c0ba
cmp esi, ecx
seta dl
cmp eax, ecx
setbe al
or al, dl
je 0x430b5b
mov dword [esi], 0x5c
lea esi, [ebp - 0x2c]
movsx eax, byte [esi + 0xb]
test eax, eax
cmovs eax, dword [esi + 4]
mov ecx, dword [esi]
cmovns ecx, esi
mov word [ecx + eax*2], 0
movsx eax, byte [edi + 0x23]
test eax, eax
mov ebx, dword [ebp - 0x30]
jns 0x430a17
mov eax, dword [edi + 0x1c]
mov ebx, dword [edi + 0x18]
mov ecx, esi
push eax
push ebx
call fcn.004a3590
cmp byte [ebp - 0x21], 0
jns 0x430a29
mov esi, dword [ebp - 0x2c]
push 0x28
call fcn.004ec94e
add esp, 4
test esi, esi
je 0x430b77
mov ebx, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x30], eax
push esi
call fcn.00507e54
add esp, 4
cmp eax, 0x7ffffff8
jae 0x430b7e
mov ecx, eax
cmp eax, 4
jbe 0x430b35
mov dword [ebp - 0x38], ebx
mov ebx, ecx
or ebx, 3
inc ebx
mov dword [ebp - 0x34], ecx
js 0x430b6a
lea eax, [ebx + ebx]
push eax
call fcn.004ec94e
add esp, 4
mov dword [ebp - 0x1c], eax
or ebx, 0x80000000
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x18], ecx
mov ebx, dword [ebp - 0x38]
lea edx, [eax + ecx*2]
cmp eax, esi
ja 0x430aa4
cmp edx, esi
ja 0x430b5b
test ecx, ecx
je 0x430ab9
add ecx, ecx
push ecx
push esi
push eax
mov esi, edx
call fcn.004f03c0
mov edx, esi
add esp, 0xc
mov word [edx], 0
mov edi, dword [edi + 4]
mov dword [ebx], fcn.004304d0
mov dword [ebx + 4], edi
mov eax, dword [ebp - 0x30]
mov dword [ebx + 8], eax
lea esi, [ebx + 0xc]
mov ecx, esi
call fcn.004583b0
mov ecx, ebx
add ecx, 0x18
cmp byte [ebp - 0x11], 0
js 0x430b40
lea eax, [ebp - 0x1c]
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov ecx, esi
push dword [ebp - 0x30]
push eax
push edi
call fcn.00458480
mov dword [ebx + 0x24], eax
cmp byte [ebp - 0x11], 0
jns 0x430b16
push dword [ebp - 0x1c]
call fcn.004ec97e
add esp, 4
mov esi, dword [ebp + 8]
mov dword [esi], ebx
cmp byte [ebp - 0x21], 0
jns 0x43090c
push dword [ebp - 0x2c]
call fcn.004ec97e
add esp, 4
jmp 0x43090c
lea eax, [ebp - 0x1c]
mov byte [eax + 0xb], cl
jmp 0x430a95
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.004a33d0
cmp byte [ebp - 0x11], 0
js 0x430b56
lea eax, [ebp - 0x1c]
jmp 0x430af6
mov eax, dword [ebp - 0x1c]
jmp 0x430af6
push str....._third_partylibc_srcinclude__stringchar_traits.h:222:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
push 0x565ab5
call fcn.0051c8d0
call fcn.0051bd90
lea ecx, [ebp - 0x2c]
call fcn.0051bd70
push str....._third_partylibc_srcinclude_string:973:_assertion___s___nullptr_failed:_basic_string_const_char__detected_nullptr_n
jmp 0x430b60
lea ecx, [ebp - 0x1c]
call fcn.0051bd70
int3