Function at 0x453230
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x602f05
mov eax, dword fs:[0]
push eax
push ecx
push ebx
sub esp, 0x90
mov eax, dword [0x6a3000]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov ecx, dword [ebx + 8]
xor al, al
mov esi, dword [ebx + 0xc]
mov byte [ebp - 0x45], al
sub edx, 1
je 0x453418
sub edx, 3
je 0x45335c
sub edx, 7
jne 0x453558
mov dword [ebp - 4], 8
xorps xmm0, xmm0
xor eax, eax
mov dword [ebp - 0x50], edx
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
mov byte [ebp - 4], 9
cmp dword [ecx + 0x14], 7
movlpd qword [ebp - 0x28], xmm0
mov dword [ebp - 0x44], 8
jbe 0x4532d3
mov ecx, dword [ecx]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x28]
push eax
push 0
push 0x40
push ecx
lea eax, [ebp - 0x60]
push eax
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x453576
jmp 0x4532ff
lea ecx, [ebp - 0x60]
call fcn.004114d0
mov dword [ebp - 4], 0xffffffff
call fcn.005dd640
cmp dword [esi + 0x14], 7
mov edi, eax
jbe 0x45331d
mov esi, dword [esi]
push 0xa
lea eax, [ebp - 0x44]
mov dword [edi], 0
push eax
push esi
call fcn.005dd2a9
add esp, 0xc
cmp esi, dword [ebp - 0x44]
je 0x453592
cmp dword [edi], 0x22
je 0x45359c
cmp dword [ebp - 0x28], eax
jne 0x453355
cmp dword [ebp - 0x24], edx
jne 0x453355
mov al, 1
jmp 0x453558
xor al, al
jmp 0x453558
mov dword [ebp - 4], 5
xorps xmm0, xmm0
xor eax, eax
mov dword [ebp - 0x50], 0
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
mov byte [ebp - 4], 6
cmp dword [ecx + 0x14], 7
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x24], 4
jbe 0x453394
mov ecx, dword [ecx]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0x10
push ecx
lea eax, [ebp - 0x60]
push eax
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x4535a6
jmp 0x4533c8
lea ecx, [ebp - 0x60]
call fcn.004114d0
mov dword [ebp - 4], 0xffffffff
call fcn.005dd640
cmp dword [esi + 0x14], 7
mov edi, eax
jbe 0x4533e6
mov esi, dword [esi]
push 0xa
lea eax, [ebp - 0x24]
mov dword [edi], 0
push eax
push esi
call fcn.005dd263
add esp, 0xc
cmp esi, dword [ebp - 0x24]
je 0x4535c2
cmp dword [edi], 0x22
je 0x4535cc
cmp dword [ebp - 0x44], eax
sete al
jmp 0x453558
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
xor eax, eax
mov dword [ebp - 0x2c], 7
movups xmmword [ebp - 0x40], xmm0
mov word [ebp - 0x40], ax
mov dword [ebp - 4], eax
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
push ecx
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 2
mov edx, dword [edi]
lea ecx, [ebp - 0x98]
push eax
call fcn.0044c420
mov edi, eax
add esp, 8
lea eax, [ebp - 0x40]
cmp eax, edi
je 0x453495
mov ecx, eax
call fcn.004114d0
movups xmm0, xmmword [edi]
xor eax, eax
movups xmmword [ebp - 0x40], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x30], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
lea ecx, [ebp - 0x98]
call fcn.004114d0
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 1
call fcn.004114d0
cmp dword [ebp - 0x2c], 7
lea eax, [ebp - 0x40]
mov edx, dword [ebp - 0x30]
lea edi, [ebp - 0x40]
cmova eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x40]
cmova edi, dword [ebp - 0x40]
cmova ecx, dword [ebp - 0x40]
lea eax, [eax + edx*2]
mov dword [ebp - 0x44], eax
cmp edi, eax
je 0x453500
sub ecx, edi
mov dword [ebp - 0x24], ecx
mov byte [ebp - 4], 3
movzx eax, word [edi]
push eax
call fcn.005dfd4a
mov byte [ebp - 4], 1
add esp, 4
mov ecx, dword [ebp - 0x24]
movzx eax, ax
mov word [ecx + edi], ax
add edi, 2
cmp edi, dword [ebp - 0x44]
jne 0x4534d7
mov edx, dword [ebp - 0x30]
cmp dword [esi + 0x14], 7
mov eax, dword [esi + 0x10]
jbe 0x45350b
mov esi, dword [esi]
cmp dword [ebp - 0x2c], 7
lea edi, [ebp - 0x40]
cmova edi, dword [ebp - 0x40]
cmp edx, eax
jne 0x45353a
test edx, edx
je 0x453534
sub edi, esi
movzx ecx, word [esi + edi]
movzx eax, word [esi]
cmp cx, ax
jne 0x45353a
add esi, 2
sub edx, 1
jne 0x453520
mov byte [ebp - 0x45], 1
jmp 0x45354d
xor al, al
mov byte [ebp - 0x45], al
jmp 0x45354d
lea ecx, [ebp - 0x40]
call fcn.004114d0
mov al, byte [ebp - 0x45]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.005ca888
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
push str.Cannot_read_QWORD_from_registry.
lea ecx, [ebp - 0x70]
call fcn.0044c350
push 0x69dd48
lea eax, [ebp - 0x70]
push eax
call fcn.005d018a
push str.invalid_stoull_argument
call fcn.005cc5b9
push str.stoull_argument_out_of_range
call fcn.005cc5f9
push eax
push str.Cannot_read_DWORD_from_registry.
lea ecx, [ebp - 0x80]
call fcn.0044c350
push 0x69dd48
lea eax, [ebp - 0x80]
push eax
call fcn.005d018a
push str.invalid_stoul_argument
call fcn.005cc5b9
push str.stoul_argument_out_of_range
call fcn.005cc5f9
int3