Function at 0x10004400
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
xor edx, edx
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x24c
mov dword [ebp + eax - 0x234], edx
add eax, 4
cmp eax, 0x20
jb 0x10004410
mov ecx, sym._nego_SpUserModeInitialize_16
mov edx, sym._nego_SpLsaModeInitialize_16
lea eax, [ebp - 0x238]
mov dword [ebp - 0x238], 0
call sym._initialize_package
test eax, eax
je 0x1000444d
lea eax, [ebp - 0x238]
call sym._add_package
lea eax, [ebp - 0x23c]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.SystemCurrentControlSetControlLsa
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
sub esp, 0x14
test eax, eax
jne 0x10004590
xor ebx, ebx
lea esi, [ebp - 0x214]
xor edi, edi
lea esi, [esi]
mov eax, dword [ebp - 0x23c]
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegEnumKeyW]
sub esp, 0x10
cmp eax, 0x103
je 0x100045b0
test eax, eax
jne 0x10004498
add ebx, 1
mov dword [ebp + eax - 0x234], edi
add eax, 4
cmp eax, 0x20
jb 0x100044cc
mov dword [ebp - 0x238], ebx
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_LoadLibraryW]
mov dword [ebp - 0x234], eax
sub esp, 4
test eax, eax
je 0x10004498
mov ecx, dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [esp + 4], str.SpLsaModeInitialize
mov dword [esp], eax
mov dword [ebp - 0x244], ecx
call ecx
mov ecx, dword [ebp - 0x244]
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x234]
sub esp, 8
mov dword [esp + 4], str.SpUserModeInitialize
mov dword [esp], eax
call ecx
mov edx, dword [ebp - 0x240]
sub esp, 8
mov ecx, eax
lea eax, [ebp - 0x238]
call sym._initialize_package
test eax, eax
jne 0x100045a0
mov eax, dword [ebp - 0x234]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
jmp 0x10004498
test byte [0x1001306c], 2
je 0x10004590
mov dword [esp + 0xc], str.Failed_to_add_SSP_AP_provider_n
mov dword [esp + 8], str.load_auth_packages
mov dword [esp + 4], 0x1001306c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x238]
call sym._add_package
jmp 0x10004498
mov eax, dword [ebp - 0x23c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov edx, dword [section..bss]
sub esp, 4
test edx, edx
je 0x10004590
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10015840
mov dword [esp], 0x100157c0
call sym._SECUR32_addProvider
mov dword [ebp - 0x244], eax
test eax, eax
je 0x10004563
mov eax, dword [section..bss]
xor ebx, ebx
test eax, eax
jne 0x10004620
jmp 0x10004590
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_free]
add ebx, 1
cmp dword [section..bss], ebx
jbe 0x10004590
mov ecx, dword [0x10019004]
lea esi, [ebx + ebx*8]
shl esi, 2
add ecx, esi
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x240], ecx
lea eax, [eax + eax*4]
shl eax, 2
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov edi, eax
test eax, eax
je 0x10004611
mov ecx, dword [ebp - 0x240]
mov eax, dword [ecx + 0x1c]
mov dword [esp], edi
call dword [eax + 0x28]
sub esp, 4
test eax, eax
jne 0x10004608
mov eax, dword [0x10019004]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov eax, dword [eax + esi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x244]
mov dword [esp], eax
call sym._SECUR32_addPackages
jmp 0x10004608