Function at 0x464944
Capabilities:
Link many functions at runtime
Query or enumerate registry value

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [0x4b507c]
xor eax, esp
mov dword [esp + 0x14], eax
push 0
push 8
push 1
call fcn.00410b50
add esp, 0xc
mov ebp, eax
mov eax, dword [0x4b8300]
test eax, eax
jne 0x464989
push str.kernel32.dll
call fcn.00466d24
add esp, 4
test eax, eax
mov dword [0x4b8300], eax
je 0x464cd5
push str.AddDllDirectory
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
mov dword [0x4b8304], eax
push edi
push 0x64
push 3
call fcn.00410b50
add esp, 0xc
mov dword [ebp], eax
lea eax, [esp + 0x10]
mov dword [ebp + 4], edi
push eax
push str.SOFTWAREMITKerberos
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
mov dword [esp], ebp
jne 0x464b86
lea ebp, [esp + 8]
lea esi, [esp + 0xc]
push ebp
push edi
push esi
push edi
push str.InstallDir
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x464aaf
cmp dword [esp + 0xc], 1
jne 0x464aaf
mov eax, dword [esp + 8]
xor edi, edi
add eax, 0x14
push edi
push 1
push eax
call fcn.00410b50
add esp, 0xc
mov ebx, eax
push ebp
push eax
push esi
push edi
push str.InstallDir
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x464aa6
cmp dword [esp + 0xc], 1
jne 0x464aa6
push ebx
call fcn.0047e720
add esp, 4
mov dword [ebx + eax], 0x6e69625c
mov byte [ebx + eax + 4], 0
cmp dword [0x4b8304], 0
je 0x464a6f
xor eax, eax
push ebx
push eax
push eax
call fcn.00413045
add esp, 0xc
mov edi, eax
push eax
call dword [0x4b8304]
push edi
call fcn.00410bcd
add esp, 4
push ebx
call fcn.0047e720
add esp, 4
mov dword [ebx + eax], 0x7373675c
mov dword [ebx + eax + 4], 0x33697061
mov dword [ebx + eax + 8], 0x6c642e32
mov word [ebx + eax + 0xc], 0x6c
push 0xd00
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov edi, eax
push ebx
call fcn.00410bcd
add esp, 4
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebp, dword [esp]
test edi, edi
je 0x464b86
mov eax, dword [ebp + 4]
mov ebx, dword [ebp]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [eax + 1]
mov dword [ebp + 4], ecx
imul ebp, eax, 0x64
lea eax, [ebx + ebp]
mov dword [ebx + ebp], 0
mov dword [ebx + ebp + 4], str.Using_GSSAPI_from_GSSAPI32.DLL
mov dword [ebx + ebp + 0x60], edi
mov dword [esp + 4], eax
push str.gss_delete_sec_context
push edi
call esi
mov dword [ebx + ebp + 0x34], eax
push str.gss_display_status
push edi
call esi
mov dword [ebx + ebp + 0x38], eax
push str.gss_get_mic
push edi
call esi
mov dword [ebx + ebp + 0x3c], eax
push str.gss_verify_mic
push edi
call esi
mov dword [ebx + ebp + 0x40], eax
push str.gss_import_name
push edi
call esi
mov dword [ebx + ebp + 0x44], eax
push str.gss_init_sec_context
push edi
call esi
mov dword [ebx + ebp + 0x48], eax
push str.gss_release_buffer
push edi
call esi
mov dword [ebx + ebp + 0x4c], eax
push str.gss_release_cred
push edi
call esi
mov dword [ebx + ebp + 0x50], eax
push str.gss_release_name
push edi
call esi
mov dword [ebx + ebp + 0x54], eax
push str.gss_acquire_cred
push edi
call esi
mov dword [ebx + ebp + 0x58], eax
push str.gss_inquire_cred_by_mech
push edi
call esi
mov dword [ebx + ebp + 0x5c], eax
mov ebp, dword [esp]
push dword [esp + 4]
call fcn.0043b310
add esp, 4
mov esi, dword [esp + 0x2c]
push str.secur32.dll
call fcn.00466d24
add esp, 4
test eax, eax
je 0x464c90
mov edi, eax
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [eax + 1]
mov dword [ebp + 4], ecx
imul ebp, eax, 0x64
mov dword [esi + ebp], 1
mov dword [esi + ebp + 4], str.Using_SSPI_from_SECUR32.DLL
mov dword [esi + ebp + 0x60], edi
push str.AcquireCredentialsHandleA
push edi
call ebx
mov dword [0x4b8308], eax
push str.InitializeSecurityContextA
push edi
call ebx
mov dword [0x4b830c], eax
push str.FreeContextBuffer
push edi
call ebx
mov dword [0x4b8310], eax
push str.FreeCredentialsHandle
push edi
call ebx
mov dword [0x4b8314], eax
push str.DeleteSecurityContext
push edi
call ebx
mov dword [0x4b8318], eax
push str.QueryContextAttributesA
push edi
call ebx
mov dword [0x4b831c], eax
push str.MakeSignature
push edi
call ebx
mov dword [0x4b8320], eax
push str.VerifySignature
push edi
call ebx
mov dword [0x4b8324], eax
mov dword [esi + ebp + 8], 0x464e60
mov dword [esi + ebp + 0xc], 0x464e78
mov dword [esi + ebp + 0x10], 0x464ea2
mov dword [esi + ebp + 0x14], 0x464ec7
mov dword [esi + ebp + 0x18], 0x4650b7
mov dword [esi + ebp + 0x1c], 0x4650d9
mov dword [esi + ebp + 0x20], 0x46515a
mov dword [esi + ebp + 0x24], 0x465195
mov dword [esi + ebp + 0x28], 0x465278
mov dword [esi + ebp + 0x2c], 0x465301
mov dword [esi + ebp + 0x30], 0x465313
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp]
push 0x2d
push esi
call fcn.0040349e
add esp, 8
mov esi, dword [eax]
cmp byte [esi], 0
je 0x464dfa
cmp dword [0x4b8304], 0
je 0x464d16
push esi
call fcn.0047e720
add esp, 4
test eax, eax
jle 0x464d16
mov cl, byte [esi + eax - 1]
dec eax
cmp cl, 0x5c
je 0x464cdc
cmp cl, 0x3a
jne 0x464cb8
lea ecx, [eax + 1]
cmp ecx, 1
jg 0x464cdd
jmp 0x464d16
xor eax, eax
jmp 0x464995
inc eax
push esi
push eax
push 0x49f71d
call fcn.004558cb
add esp, 0xc
mov edi, eax
xor eax, eax
push edi
push eax
push eax
call fcn.00413045
add esp, 0xc
mov ebx, eax
push eax
call dword [0x4b8304]
push ebx
call fcn.00410bcd
add esp, 4
push edi
call fcn.00410bcd
add esp, 4
push 0xd00
push 0
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
je 0x464dfa
mov edi, eax
mov eax, dword [ebp + 4]
mov ebx, dword [ebp]
lea ecx, [eax + 1]
mov dword [ebp + 4], ecx
imul ebp, eax, 0x64
lea eax, [ebx + ebp]
mov dword [ebx + ebp], 2
mov dword [esp + 4], eax
push esi
push str.Using_GSSAPI_from_user_specified_library__s
call fcn.004558cb
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + ebp + 4], eax
mov dword [ebx + ebp + 0x60], edi
push str.gss_delete_sec_context
push edi
call esi
mov dword [ebx + ebp + 0x34], eax
push str.gss_display_status
push edi
call esi
mov dword [ebx + ebp + 0x38], eax
push str.gss_get_mic
push edi
call esi
mov dword [ebx + ebp + 0x3c], eax
push str.gss_verify_mic
push edi
call esi
mov dword [ebx + ebp + 0x40], eax
push str.gss_import_name
push edi
call esi
mov dword [ebx + ebp + 0x44], eax
push str.gss_init_sec_context
push edi
call esi
mov dword [ebx + ebp + 0x48], eax
push str.gss_release_buffer
push edi
call esi
mov dword [ebx + ebp + 0x4c], eax
push str.gss_release_cred
push edi
call esi
mov dword [ebx + ebp + 0x50], eax
push str.gss_release_name
push edi
call esi
mov dword [ebx + ebp + 0x54], eax
push str.gss_acquire_cred
push edi
call esi
mov dword [ebx + ebp + 0x58], eax
push str.gss_inquire_cred_by_mech
push edi
call esi
mov dword [ebx + ebp + 0x5c], eax
mov ebp, dword [esp]
push dword [esp + 4]
call fcn.0043b310
add esp, 4
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.0046f0c8
mov eax, ebp
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret