Function at 0x412b80
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d8961
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x532d60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, edx
mov dword [ebp - 0xb0], eax
mov esi, ecx
mov dword [ebp - 0x58], esi
and dword [ebp - 0x1c], 0xfffffe00
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 1
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x8c], edi
mov byte [ebp - 4], 2
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x68], ebx
mov byte [ebp - 4], 3
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
mov dword [ebp - 0x74], eax
add eax, 0x10
mov dword [ebp - 0xac], eax
mov byte [ebp - 4], 5
mov al, byte [esi + 8]
test al, al
je 0x412c4d
cmp al, 7
je 0x412c4d
push 0x42b
push str...CrossRiderGeneralJsonjson_value.cpp
push str.type___nullValue__type___objectValue
call fcn.004bac2c
add esp, 0xc
cmp byte [esi + 8], 0
jne 0x412c5d
mov ecx, 0x537e88
jmp 0x412ce4
mov dword [ebp - 0x80], str.hive
mov dword [ebp - 0x7c], 0
mov esi, dword [esi]
lea eax, [ebp - 0x80]
push eax
mov ecx, esi
call fcn.0044e110
mov ecx, dword [esi]
cmp eax, ecx
je 0x412cc7
mov esi, dword [eax + 0x10]
mov edx, str.hive
mov bl, byte [edx]
cmp bl, byte [esi]
mov byte [ebp - 0x4d], bl
mov ebx, dword [ebp - 0x68]
jne 0x412cb6
cmp byte [ebp - 0x4d], 0
je 0x412cb2
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
mov byte [ebp - 0x4d], bl
mov ebx, dword [ebp - 0x68]
jne 0x412cb6
add edx, 2
add esi, 2
cmp byte [ebp - 0x4d], 0
jne 0x412c86
xor edx, edx
jmp 0x412cbb
sbb edx, edx
or edx, 1
test edx, edx
sets dl
mov dword [ebp - 0x60], eax
test dl, dl
je 0x412cca
mov dword [ebp - 0x60], ecx
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 0x60]
mov ecx, dword [edx]
mov eax, dword [eax]
mov byte [ebp - 4], 5
cmp eax, dword [ecx]
mov ecx, 0x537e88
je 0x412ce4
lea ecx, [eax + 0x18]
sub esp, 0x18
push esp
call fcn.0044cb40
lea ecx, [ebp - 0x54]
call fcn.00433a00
add esp, 0x18
mov byte [ebp - 4], 7
mov edx, dword [eax]
lea ecx, [edi - 0x10]
lea esi, [edx - 0x10]
mov dword [ebp - 0x60], ecx
cmp esi, ecx
je 0x412d60
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x412d4b
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x412d4b
mov ecx, esi
call fcn.00404b50
or esi, 0xffffffff
mov dword [ebp - 0x64], eax
mov ecx, esi
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x412d40
mov edx, dword [ebp - 0x60]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x64]
lea edi, [eax + 0x10]
mov dword [ebp - 0x8c], edi
jmp 0x412d63
push dword [edx - 0xc]
lea ecx, [ebp - 0x8c]
push edx
call fcn.00404a90
mov edi, dword [ebp - 0x8c]
or esi, 0xffffffff
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412d83
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [edi - 0x10]
push ecx
mov ecx, dword [eax]
mov dword [ebp - 0x60], eax
mov eax, dword [ecx]
mov dword [ebp - 0x54], esp
call dword [eax + 0x10]
cmp dword [edi - 4], 0
lea edx, [edi - 4]
mov ecx, eax
jl 0x412db2
cmp ecx, dword [edi - 0x10]
jne 0x412db2
lea ecx, [edi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x412df2
mov eax, dword [ecx]
push 2
push dword [edi - 0xc]
call dword [eax]
mov edx, eax
mov dword [ebp - 0x64], edx
test edx, edx
jne 0x412dc9
call fcn.0040caf0
mov eax, dword [edi - 0xc]
mov dword [edx + 4], eax
mov ecx, dword [edi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push edi
push eax
lea eax, [edx + 0x10]
push eax
call fcn.004b8ee1
mov ecx, dword [ebp - 0x64]
add esp, 0x10
lea eax, [ecx + 0x10]
mov ecx, dword [ebp - 0x54]
mov dword [ecx], eax
call fcn.00410050
add esp, 4
mov dword [ebp - 0x7c], eax
test eax, eax
jne 0x412ffb
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x8c]
push eax
mov edx, str.enumRegKeys_hive_error_
lea ecx, [ebp - 0x58]
call fcn.00427b90
add esp, 4
push str.enumRegKeys
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 8
call fcn.00403ac0
mov byte [ebp - 4], 9
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x90], esi
lea eax, [ebp - 0x58]
push eax
lea edx, [ebp - 0x90]
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xa
call fcn.00433ec0
add esp, 4
mov edi, eax
push str.GlobalLog
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xb
call fcn.00403ac0
push 2
push edi
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x54]
push eax
mov ecx, 0x537920
mov byte [ebp - 4], 0xc
call fcn.004018b0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412eba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412eda
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [esi + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412ef7
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x64]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412f17
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0xa8]
call fcn.00433ad0
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xd
call fcn.0044c7d0
push ecx
push str.error
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xe
call fcn.0044d470
lea ecx, [ebp - 0x88]
push ecx
mov ecx, eax
call fcn.0044ca80
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xd
call fcn.0044c9c0
cmp dword [ebp - 0x94], 0x10
jb 0x412f7b
push dword [ebp - 0xa8]
call fcn.004b817c
add esp, 4
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412f9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x74]
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412fb8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [ebx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412fd5
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x60]
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4139c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4139c2
mov eax, dword [ebp - 0x58]
mov al, byte [eax + 8]
test al, al
je 0x413020
cmp al, 7
je 0x413020
push 0x42b
push str...CrossRiderGeneralJsonjson_value.cpp
push str.type___nullValue__type___objectValue
call fcn.004bac2c
add esp, 0xc
mov eax, dword [ebp - 0x58]
cmp byte [eax + 8], 0
jne 0x413033
mov ecx, 0x537e88
jmp 0x4130d8
mov dword [ebp - 0x70], 0x51a53c
mov dword [ebp - 0x6c], 0
mov eax, dword [eax]
lea ecx, [ebp - 0x70]
push ecx
mov ecx, eax
call fcn.0044e110
mov edx, dword [ebp - 0x58]
mov ecx, dword [edx]
mov ecx, dword [ecx]
mov dword [ebp - 0x64], ecx
cmp eax, ecx
je 0x4130bb
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x54], edx
mov edx, 0x51a53c
mov bl, byte [edx]
mov byte [ebp - 0x4d], bl
mov ebx, dword [ebp - 0x54]
mov cl, byte [ebp - 0x4d]
cmp cl, byte [ebx]
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x68]
jne 0x4130aa
cmp byte [ebp - 0x4d], 0
je 0x4130a6
mov bl, byte [edx + 1]
mov byte [ebp - 0x4d], bl
mov ebx, dword [ebp - 0x54]
mov cl, byte [ebp - 0x4d]
cmp cl, byte [ebx + 1]
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x68]
jne 0x4130aa
add dword [ebp - 0x54], 2
add edx, 2
cmp byte [ebp - 0x4d], 0
jne 0x413067
xor edx, edx
jmp 0x4130af
sbb edx, edx
or edx, 1
test edx, edx
sets dl
mov dword [ebp - 0x6c], eax
test dl, dl
je 0x4130be
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 0x6c]
mov ecx, dword [edx]
mov eax, dword [eax]
mov byte [ebp - 4], 5
cmp eax, dword [ecx]
mov ecx, 0x537e88
je 0x4130d8
lea ecx, [eax + 0x18]
sub esp, 0x18
push esp
call fcn.0044cb40
lea ecx, [ebp - 0x94]
call fcn.00433a00
add esp, 0x18
mov byte [ebp - 4], 0x10
mov edx, dword [eax]
lea ecx, [ebx - 0x10]
lea eax, [edx - 0x10]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x90], ecx
cmp eax, ecx
je 0x413155
cmp dword [ecx + 0xc], 0
lea ebx, [ecx + 0xc]
jl 0x413146
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x413146
mov ecx, dword [ebp - 0x6c]
call fcn.00404b50
mov dword [ebp - 0x6c], eax
mov ecx, esi
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x41313e
mov edx, dword [ebp - 0x90]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x6c]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x68], ebx
jmp 0x413155
push dword [edx - 0xc]
lea ecx, [ebp - 0x68]
push edx
call fcn.00404a90
mov ebx, dword [ebp - 0x68]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413178
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x58]
mov al, byte [esi + 8]
test al, al
je 0x41319d
cmp al, 7
je 0x41319d
push 0x42b
push str...CrossRiderGeneralJsonjson_value.cpp
push str.type___nullValue__type___objectValue
call fcn.004bac2c
add esp, 0xc
mov al, byte [esi + 8]
mov byte [ebp - 0x59], al
test al, al
je 0x413323
mov dword [ebp - 0x98], 0x51a548
mov dword [ebp - 0x94], 0
mov esi, dword [esi]
lea eax, [ebp - 0x98]
push eax
mov ecx, esi
call fcn.0044e110
mov ecx, dword [esi]
cmp eax, ecx
je 0x413224
mov esi, dword [eax + 0x10]
mov edx, 0x51a548
lea ecx, [ecx]
mov bl, byte [edx]
cmp bl, byte [esi]
mov byte [ebp - 0x4d], bl
mov ebx, dword [ebp - 0x68]
jne 0x413210
cmp byte [ebp - 0x4d], 0
je 0x41320c
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
mov byte [ebp - 0x4d], bl
mov ebx, dword [ebp - 0x68]
jne 0x413210
add edx, 2
add esi, 2
cmp byte [ebp - 0x4d], 0
jne 0x4131e0
xor edx, edx
jmp 0x413215
sbb edx, edx
or edx, 1
test edx, edx
sets dl
mov dword [ebp - 0x94], eax
test dl, dl
je 0x41322a
mov dword [ebp - 0x94], ecx
mov esi, dword [ebp - 0x58]
lea eax, [ebp - 0x94]
mov ecx, dword [esi]
mov eax, dword [eax]
mov byte [ebp - 4], 5
cmp eax, dword [ecx]
je 0x413323
add eax, 0x18
cmp eax, 0x537e88
je 0x413323
cmp byte [ebp - 0x59], 7
je 0x41326e
push 0x42b
push str...CrossRiderGeneralJsonjson_value.cpp
push str.type___nullValue__type___objectValue
call fcn.004bac2c
add esp, 0xc
cmp byte [esi + 8], 0
jne 0x413283
mov ecx, 0x537e88
call fcn.0044cc70
jmp 0x413325
mov dword [ebp - 0x98], 0x51a548
mov dword [ebp - 0x94], 0
mov esi, dword [esi]
lea eax, [ebp - 0x98]
push eax
mov ecx, esi
call fcn.0044e110
mov ecx, dword [esi]
cmp eax, ecx
je 0x4132f9
mov esi, dword [eax + 0x10]
mov edx, 0x51a548
mov bl, byte [edx]
cmp bl, byte [esi]
mov byte [ebp - 0x59], bl
mov ebx, dword [ebp - 0x68]
jne 0x4132e5
cmp byte [ebp - 0x59], 0
je 0x4132e1
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
mov byte [ebp - 0x59], bl
mov ebx, dword [ebp - 0x68]
jne 0x4132e5
add edx, 2
add esi, 2
cmp byte [ebp - 0x59], 0
jne 0x4132b5
xor edx, edx
jmp 0x4132ea
sbb edx, edx
or edx, 1
test edx, edx
sets dl
mov dword [ebp - 0x94], eax
test dl, dl
je 0x4132ff
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 0x94]
mov ecx, dword [edx]
mov eax, dword [eax]
mov byte [ebp - 4], 5
cmp eax, dword [ecx]
mov ecx, 0x537e88
je 0x41331c
lea ecx, [eax + 0x18]
call fcn.0044cc70
jmp 0x413325
xor eax, eax
mov ecx, 0x20019
cmp eax, 0x20
jne 0x413336
mov ecx, 0x20219
jmp 0x413341
mov edx, 0x20119
cmp eax, 0x40
cmove ecx, edx
lea eax, [ebp - 0x48]
push eax
push ecx
push 0
push ebx
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x54], 0
test eax, eax
je 0x413579
mov edx, eax
lea ecx, [ebp - 0x7c]
call fcn.00433f60
push eax
mov edx, str.enumRegKeys_RegOpenKeyEx_
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x13
call fcn.00427b90
add esp, 4
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4133a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.enumRegKey_
lea ecx, [ebp - 0x58]
call fcn.00403ac0
mov byte [ebp - 4], 0x16
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x94], esi
lea eax, [ebp - 0x54]
push eax
lea edx, [ebp - 0x94]
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x17
call fcn.00433ec0
add esp, 4
mov dword [ebp - 0x6c], eax
push str.GlobalLog
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x18
call fcn.00403ac0
push 2
mov byte [ebp - 4], 0x19
push dword [ebp - 0x6c]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x64]
push eax
mov ecx, 0x537920
call fcn.004018b0
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x64]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413435
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x90]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413458
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [esi + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413475
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413495
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0xc8]
call fcn.00433ad0
push eax
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x1a
call fcn.0044c7d0
push ecx
push str.error
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1b
call fcn.0044d470
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, eax
call fcn.0044ca80
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x1a
call fcn.0044c9c0
cmp dword [ebp - 0xb4], 0x10
jb 0x4134f9
push dword [ebp - 0xc8]
call fcn.004b817c
add esp, 4
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413519
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x74]
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413536
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [ebx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413553
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x60]
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4139c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4139c2
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
mov dword [ebp - 0x4c], 0x104
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x58], esi
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x60], eax
test edx, edx
jns 0x4135b1
push 0x80070057
call fcn.0040cad0
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x4135ce
push edx
lea ecx, [ebp - 0x58]
call fcn.0040cb40
mov esi, dword [ebp - 0x58]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x4c]
push eax
push esi
push dword [ebp - 0x54]
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [ebp - 0x7c], eax
cmp eax, 0x103
je 0x41374c
push dword [esi - 8]
push esi
call fcn.004b9605
add esp, 8
test eax, eax
js 0x4135a7
cmp eax, dword [esi - 8]
jg 0x4135a7
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
cmp dword [ebp - 0x7c], ecx
jne 0x4136d6
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0xc8]
call fcn.00433ad0
mov esi, eax
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x60]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x98], eax
mov eax, dword [0x538390]
mov dword [ebp - 0x94], 0
test al, 1
jne 0x413678
or eax, 1
push 0x4e75e0
mov dword [0x538390], eax
mov dword [0x538314], 0x51fae8
call fcn.004b8949
add esp, 4
cmp dword [esi + 0x14], 0x10
mov edx, dword [esi + 0x10]
jb 0x413683
mov esi, dword [esi]
mov ecx, dword [0x534374]
push edx
mov eax, dword [ecx]
push esi
call dword [eax + 0xc]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1e
call fcn.0044d750
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x1d
call fcn.0044c9c0
mov byte [ebp - 4], 0x1c
cmp dword [ebp - 0xb4], 0x10
jb 0x4136d3
push dword [ebp - 0xc8]
call fcn.004b817c
add esp, 4
mov esi, dword [ebp - 0x58]
cmp dword [esi - 0xc], 0
mov eax, dword [esi - 0x10]
lea edx, [esi - 0x10]
mov dword [ebp - 0x7c], eax
je 0x41373c
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x41371a
cmp dword [esi - 8], 0
jge 0x4136fe
push 0x80070057
call fcn.0040cad0
xor eax, eax
inc dword [ebp - 0x54]
mov dword [esi - 0xc], 0
mov edx, 0x104
mov word [esi], ax
mov dword [ebp - 0x4c], edx
jmp 0x4135a3
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41372e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x58], esi
inc dword [ebp - 0x54]
mov edx, 0x104
mov dword [ebp - 0x4c], edx
jmp 0x4135a3
mov eax, dword [ebp - 0x1c]
test al, al
je 0x41375f
cmp al, 6
je 0x41375f
cmp al, 7
jne 0x413841
movsx eax, al
cmp eax, 7
ja case.default.0x413767
jmp dword [eax*4 + 0x413ba8]
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0
je case.0x413767.0
mov eax, dword [eax]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], eax
call fcn.0042db10
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x14]
inc eax
jmp 0x4137ae
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
jmp 0x4137ae
push 0x388
push str...CrossRiderGeneralJsonjson_value.cpp
push 0x51c678
call fcn.004bac2c
add esp, 0xc
xor eax, eax
test eax, eax
sete al
test al, al
je 0x413841
mov eax, dword [ebp - 0x80]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0x80], eax
mov eax, dword [0x538390]
mov dword [ebp - 0x7c], 0
test al, 1
jne 0x4137fa
or eax, 1
push 0x4e75e0
mov dword [0x538390], eax
mov dword [0x538314], 0x51fae8
call fcn.004b8949
add esp, 4
mov ecx, dword [0x534374]
push 0xffffffffffffffff
mov eax, dword [ecx]
push str.empty
call dword [eax + 0xc]
mov dword [ebp - 0x88], eax
push ecx
push str.error
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1f
call fcn.0044d470
lea ecx, [ebp - 0x88]
push ecx
mov ecx, eax
call fcn.0044ca80
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x1c
call fcn.0044c9c0
lea edx, [esi - 0x10]
or esi, 0xffffffff
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413861
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0x74]
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413881
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [ebx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41389e
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
mov byte [ebp - 4], 1
or edi, 0xffffffff
jmp 0x412fdc
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4139d7
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0x51c0cc
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 0x27
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x74], esi
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x28
call fcn.0044f670
mov edx, eax
mov byte [ebp - 4], 0x29
cmp dword [edx + 0x14], 0x10
jb 0x413a30
mov edx, dword [edx]
sub esp, 0x18
mov ebx, esp
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
cmp byte [edx], 0
jne 0x413a4f
xor ecx, ecx
jmp 0x413a61
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x78], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413a57
sub ecx, dword [ebp - 0x78]
push ecx
push edx
mov ecx, ebx
call fcn.004012e0
lea ecx, [ebp - 0xac]
call fcn.00433a00
add esp, 0x18
mov byte [ebp - 4], 0x2a
mov edx, dword [eax]
lea ebx, [esi - 0x10]
lea ecx, [edx - 0x10]
cmp ecx, ebx
je 0x413acc
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x413abd
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x413abd
call fcn.00404b50
mov dword [ebp - 0x78], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x413ab5
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x78]
lea esi, [eax + 0x10]
mov dword [ebp - 0x74], esi
jmp 0x413acc
push dword [edx - 0xc]
lea ecx, [ebp - 0x74]
push edx
call fcn.00404a90
mov esi, dword [ebp - 0x74]
mov byte [ebp - 4], 0x29
mov edx, dword [ebp - 0xac]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413aef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x28
cmp dword [ebp - 0xb4], 0x10
jb 0x413b0a
push dword [ebp - 0xc8]
call fcn.004b817c
add esp, 4
mov ebx, dword [ebp - 0xb0]
mov eax, 8
mov word [ebx], ax
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x413b2b
call fcn.0040caf0
add esi, 0xfffffff0
mov dword [ebx + 8], eax
mov byte [ebp - 4], 0x27
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x413b49
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x44], 0x51c0cc
jb 0x413b61
push dword [ebp - 0x40]
call fcn.004b817c
add esp, 4
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
mov dword [ebp - 0x44], 0x51fca0
mov dword [ebp - 4], 0xffffffff
call fcn.0044c9c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004b8181
mov esp, ebp
pop ebp
ret