Function at 0x69044f20
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, ecx
lea edi, [ebp - 0x284]
mov ecx, 0x19
push ebx
lea ebx, [ebp - 0x2d0]
sub esp, 0x30c
mov dword [ebp - 0x2dc], eax
xor eax, eax
test esi, esi
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2e0], edx
cmovne ebx, esi
mov dword [ebp - 0x2d8], 0x40
mov dword [ebp - 0x2d4], 0xffffffff
test edx, edx
je 0x69044f71
xor ecx, ecx
mov word [edx], cx
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x69078448
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegCreateKeyW]
sub esp, 0xc
test eax, eax
je 0x69044fb0
xor edi, edi
test byte [0x6907604c], 4
jne 0x69045090
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x2d8]
mov dword [esp + 0xc], 2
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x2c4]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x2d4]
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.MRUList
mov dword [esp + 4], 0
mov eax, dword [ebx]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_RegGetValueW]
mov dword [ebp - 0x2e8], eax
call eax
mov dword [ebp - 0x2e4], eax
sub esp, 0x1c
test eax, eax
jne 0x69045038
cmp dword [ebp - 0x2d4], 1
je 0x690450c8
test byte [0x6907604c], 4
jne 0x69045053
mov eax, dword [ebx]
xor edi, edi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, edi
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [ebp - 0x2e4], 2
mov edi, 0x61
je 0x69044fa0
test byte [0x6907604c], 4
je 0x6904501b
mov eax, dword [ebp - 0x2e4]
mov dword [esp + 0xc], str.Error_getting_MRUList_data:_type:__ld__ret:__ld_n
mov dword [esp + 8], str.FILEDLG95_MRU_get_slot
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x2d4]
mov dword [esp + 4], 0x6907604c
mov dword [esp + 0x10], eax
mov dword [esp], 2
call fcn.69044e10
jmp 0x6904501b
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unable_to_create_MRU_key:__ld_n
mov dword [esp + 8], str.FILEDLG95_MRU_get_slot
mov dword [esp + 4], 0x6907604c
mov dword [esp], 2
call fcn.69044e10
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [ebp - 0x2c4]
test ax, ax
je 0x690452c1
mov dword [ebp - 0x2ec], esi
lea edi, [ebp - 0x2c4]
mov esi, dword [ebp - 0x2e8]
jmp 0x69045100
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
je 0x69045248
mov word [ebp - 0x2c8], ax
lea eax, [ebp - 0x2cc]
xor edx, edx
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x220]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x2d4]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x2c8]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx]
mov word [ebp - 0x2c6], dx
mov dword [ebp - 0x2cc], 0x208
mov dword [esp], eax
call esi
sub esp, 0x1c
test eax, eax
jne 0x69045169
cmp dword [ebp - 0x2d4], 3
je 0x690451b0
test byte [0x6907604c], 4
je 0x690450f0
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x2d4]
mov dword [esp + 0xc], str.Error_getting_MRU_slot_data:_type:__ld__ret:__ld_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.FILEDLG95_MRU_get_slot
mov dword [esp + 4], 0x6907604c
mov dword [esp], 2
call fcn.69044e10
jmp 0x690450f0
lea eax, [ebp - 0x220]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2dc]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x690450f0
mov esi, dword [ebp - 0x2ec]
test esi, esi
je 0x690452e0
mov eax, dword [ebp - 0x2e0]
test eax, eax
je 0x69045238
cmp word [ebp - 0x220], 0
je 0x690452f3
lea eax, [ebp - 0x220]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x69045200
lea esi, [ebp - 0x220]
sub eax, esi
add eax, 2
lea esi, [ebp - 0x220]
mov ebx, dword [ebp - 0x2e0]
xor edx, edx
add eax, esi
lea esi, [esi]
movzx ecx, word [eax + edx]
mov word [ebx + edx], cx
add edx, 2
test cx, cx
jne 0x69045228
movzx edi, word [ebp - 0x2c8]
jmp 0x69044fa0
mov esi, dword [ebp - 0x2ec]
test esi, esi
je 0x690452c5
movzx eax, word [ebp - 0x2c4]
lea edx, [ebp - 0x2c4]
test ax, ax
je 0x690452d8
lea esi, [esi]
mov dword [ebp + eax*4 - 0x408], 1
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x69045268
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x2e4]
xor eax, eax
jmp 0x690452a7
add eax, 1
cmp eax, 0x19
je 0x690452b8
mov ecx, dword [ebp + eax*4 - 0x284]
test ecx, ecx
jne 0x69045298
lea edi, [eax + 0x61]
jmp 0x69044fa0
movzx edi, word [edx - 2]
jmp 0x69044fa0
test esi, esi
jne 0x690452d8
mov eax, dword [ebx]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x69045252
lea edx, [ebp - 0x2c4]
jmp 0x6904528b
mov eax, dword [ebx]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x690451df
mov eax, 2
jmp 0x69045214