Function at 0x448d90
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x585440
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x5ed80c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x64], edi
push 0x30
cmp dword [ecx], esi
jne 0x448eb0
mov dword [ebp - 0x34], esi
call fcn.0055b782
add esp, 4
cmp eax, esi
je 0x448e8c
mov dword [ebp - 0x38], eax
mov dword [eax], eax
mov eax, dword [ebp - 0x38]
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [eax + 8], eax
mov eax, dword [ebp - 0x38]
mov byte [eax + 0x2c], 1
mov ecx, dword [ebp - 0x38]
mov byte [ecx + 0x2d], 1
lea edx, [ebp - 0x3c]
mov dword [ebp - 4], esi
cmp edi, edx
je 0x448e48
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
push ecx
mov ecx, edi
call fcn.0044fcd0
mov eax, dword [edi + 4]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
mov dword [eax], eax
mov eax, dword [edi + 4]
mov dword [eax + 8], eax
mov edx, dword [ebp - 0x38]
mov dword [edi + 8], esi
mov eax, dword [edi + 4]
mov dword [edi + 4], edx
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
mov dword [edi + 8], edx
mov dword [ebp - 0x34], ecx
jmp 0x448e4b
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
push eax
push ecx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], 1
call fcn.004503d0
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.0055ae44
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055bc32
mov esp, ebp
pop ebp
ret 4
mov dword [ebp - 0x40], esi
lea edx, [ebp - 0x40]
push edx
lea ecx, [ebp - 0x70]
call fcn.0055b5ba
push 0x5cc520
lea eax, [ebp - 0x70]
push eax
mov dword [ebp - 0x70], vtable.std::bad_alloc.0
call fcn.0055b802
mov dword [ebp - 0x58], esi
call fcn.0055b782
add esp, 4
cmp eax, esi
je 0x4490fc
mov dword [ebp - 0x5c], eax
mov dword [eax], eax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 8], eax
mov ecx, dword [ebp - 0x5c]
mov byte [ecx + 0x2c], 1
mov edx, dword [ebp - 0x5c]
mov byte [edx + 0x2d], 1
mov dword [ebp - 4], 2
mov dword [ebp - 0x44], esi
lea esp, [esp]
push 0x20
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
call fcn.00405a60
mov ebx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
push 0
mov eax, ebx
sub eax, esi
push 0
sar eax, 1
dec eax
lea edx, [ebp - 0x50]
push edx
mov edx, dword [ebp - 0x44]
push 0
mov dword [ebp - 0x48], eax
mov eax, dword [ecx]
lea ecx, [ebp - 0x48]
push ecx
push esi
push edx
push eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x50], 0
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0xea
jne 0x449020
mov eax, dword [ebp - 0x48]
add eax, eax
lea edi, [eax + 1]
mov dword [ebp - 0x48], eax
mov eax, ebx
sub eax, esi
sar eax, 1
cmp eax, edi
jbe 0x448f78
lea edi, [esi + edi*2]
cmp edi, ebx
je 0x448ff3
push 0
push ebx
push edi
call fcn.0055b1c0
add esp, 0xc
mov ebx, edi
jmp 0x448ff0
jae 0x448ff3
mov ecx, edi
sub ecx, eax
mov edx, SysReAllocString
sub edx, ecx
cmp edx, eax
jb 0x4490a4
add eax, ecx
mov ecx, dword [ebp - 0x34]
sub ecx, esi
sar ecx, 1
cmp eax, ecx
jbe 0x448fc4
mov edx, ecx
shr edx, 1
mov esi, SysReAllocString
sub esi, edx
cmp esi, ecx
jae 0x448fad
xor ecx, ecx
jmp 0x448faf
add ecx, edx
cmp ecx, eax
jae 0x448fb5
mov ecx, eax
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00404a90
mov ebx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
mov eax, ebx
sub eax, esi
sar eax, 1
mov ecx, edi
sub ecx, eax
mov dword [ebp - 0x74], ecx
je 0x448fed
xor eax, eax
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
shr ecx, 1
mov edi, ebx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov ecx, dword [ebp - 0x74]
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x38], ebx
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
push 0
push 0
lea ecx, [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x44]
push 0
lea edx, [ebp - 0x48]
push edx
push esi
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0xea
je 0x448f48
mov edi, dword [ebp - 0x64]
test eax, eax
jne 0x449082
xor edx, edx
mov dword [ebp - 0x1c], eax
mov eax, esi
mov word [ebp - 0x2c], dx
mov dword [ebp - 0x18], 7
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x449040
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00401c40
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 4
call fcn.004479e0
mov ecx, dword [ebp - 0x50]
mov dword [eax], ecx
cmp dword [ebp - 0x18], 8
jb 0x449089
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0055ae44
add esp, 4
jmp 0x449089
cmp eax, 0x103
je 0x4490ae
mov byte [ebp - 4], 2
test esi, esi
je 0x44909a
push esi
call fcn.0055ae44
add esp, 4
inc dword [ebp - 0x44]
xor esi, esi
jmp 0x448ef0
push str.vector_T__too_long
call fcn.00522d72
lea eax, [ebp - 0x60]
cmp eax, edi
je 0x4490cd
mov eax, dword [ebp - 0x5c]
mov ecx, dword [edi + 4]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x58]
mov edx, dword [edi + 8]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], edx
mov dword [edi + 8], eax
test esi, esi
je 0x4490da
push esi
call fcn.0055ae44
add esp, 4
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx]
push ecx
push eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 7
call fcn.004503d0
mov ecx, dword [ebp - 0x5c]
jmp 0x448e65
mov dword [ebp - 0x4c], esi
lea edx, [ebp - 0x4c]
jmp 0x448e92