Function at 0x464710
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 [0x4b6074]
xor eax, esp
mov dword [esp + 0x14], eax
push 8
push 1
call fcn.00410d70
add esp, 8
mov ebx, eax
mov eax, dword [0x4b9300]
test eax, eax
jne 0x464753
push str.kernel32.dll
call fcn.00466b09
add esp, 4
test eax, eax
mov dword [0x4b9300], eax
je 0x464a89
push str.AddDllDirectory
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4b9304], eax
push 0x64
push 3
call fcn.00410d70
add esp, 8
mov dword [ebx], eax
lea eax, [esp + 0x10]
mov dword [ebx + 4], 0
push eax
push str.SOFTWAREMITKerberos
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
mov dword [esp], ebx
jne 0x464939
lea ebp, [esp + 8]
xor edi, edi
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 0x46487e
cmp dword [esp + 0xc], 1
jne 0x46487e
mov eax, dword [esp + 8]
add eax, 0x14
push 1
push eax
call fcn.00410d70
add esp, 8
mov ebx, eax
push ebp
push eax
push esi
push 0
push str.InstallDir
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
xor edi, edi
test eax, eax
jne 0x464872
cmp dword [esp + 0xc], 1
jne 0x464872
push ebx
call fcn.0047e5a0
add esp, 4
mov byte [ebx + eax + 4], 0
mov dword [ebx + eax], 0x6e69625c
cmp dword [0x4b9304], 0
je 0x46483b
xor eax, eax
push ebx
push eax
push eax
call fcn.00413241
add esp, 0xc
mov edi, eax
push eax
call dword [0x4b9304]
push edi
call fcn.00410de6
add esp, 4
push ebx
call fcn.0047e5a0
add esp, 4
mov word [ebx + eax + 0xc], 0x6c
mov dword [ebx + eax + 8], 0x6c642e32
mov dword [ebx + eax + 4], 0x33697061
mov dword [ebx + eax], 0x7373675c
push 0xd00
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov edi, eax
push ebx
call fcn.00410de6
add esp, 4
mov ebx, dword [esp]
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x464939
mov eax, dword [ebx + 4]
mov esi, dword [ebx]
lea ecx, [eax + 1]
imul ebp, eax, 0x64
mov dword [ebx + 4], ecx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea eax, [esi + ebp]
mov dword [esi + ebp], 0
mov dword [esi + ebp + 4], str.Using_GSSAPI_from_GSSAPI32.DLL
mov dword [esi + ebp + 0x60], edi
mov dword [esp + 4], eax
push str.gss_delete_sec_context
push edi
call ebx
mov dword [esi + ebp + 0x34], eax
push str.gss_display_status
push edi
call ebx
mov dword [esi + ebp + 0x38], eax
push str.gss_get_mic
push edi
call ebx
mov dword [esi + ebp + 0x3c], eax
push str.gss_verify_mic
push edi
call ebx
mov dword [esi + ebp + 0x40], eax
push str.gss_import_name
push edi
call ebx
mov dword [esi + ebp + 0x44], eax
push str.gss_init_sec_context
push edi
call ebx
mov dword [esi + ebp + 0x48], eax
push str.gss_release_buffer
push edi
call ebx
mov dword [esi + ebp + 0x4c], eax
push str.gss_release_cred
push edi
call ebx
mov dword [esi + ebp + 0x50], eax
push str.gss_release_name
push edi
call ebx
mov ebx, dword [esp]
mov dword [esi + ebp + 0x54], eax
push dword [esp + 4]
call fcn.0043bcd4
add esp, 4
mov esi, dword [esp + 0x2c]
push str.secur32.dll
call fcn.00466b09
add esp, 4
test eax, eax
je 0x464a41
mov edi, eax
mov eax, dword [ebx + 4]
mov esi, dword [ebx]
lea ecx, [eax + 1]
imul ebp, eax, 0x64
xor eax, eax
mov dword [ebx + 4], ecx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
inc eax
mov dword [esi + ebp], eax
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 [0x4b9308], eax
push str.InitializeSecurityContextA
push edi
call ebx
mov dword [0x4b930c], eax
push str.FreeContextBuffer
push edi
call ebx
mov dword [0x4b9310], eax
push str.FreeCredentialsHandle
push edi
call ebx
mov dword [0x4b9314], eax
push str.DeleteSecurityContext
push edi
call ebx
mov dword [0x4b9318], eax
push str.QueryContextAttributesA
push edi
call ebx
mov dword [0x4b931c], eax
push str.MakeSignature
push edi
call ebx
mov dword [0x4b9320], eax
push str.VerifySignature
push edi
call ebx
mov dword [0x4b9324], eax
mov dword [esi + ebp + 8], 0x464c08
mov dword [esi + ebp + 0xc], 0x464c20
mov dword [esi + ebp + 0x10], 0x464c4a
mov dword [esi + ebp + 0x14], 0x464c6f
mov dword [esi + ebp + 0x18], 0x464e56
mov dword [esi + ebp + 0x1c], 0x464e78
mov dword [esi + ebp + 0x20], 0x464ef6
mov dword [esi + ebp + 0x24], 0x464f31
mov dword [esi + ebp + 0x28], 0x465011
mov dword [esi + ebp + 0x2c], 0x46509a
mov dword [esi + ebp + 0x30], 0x4650ac
mov ebx, dword [esp]
mov esi, dword [esp + 0x2c]
push 0x2c
push esi
call fcn.004034a0
add esp, 8
mov ebp, dword [eax]
cmp byte [ebp], 0
je 0x464ba2
cmp dword [0x4b9304], 0
je 0x464ace
push ebp
call fcn.0047e5a0
add esp, 4
test eax, eax
jle 0x464ace
mov cl, byte [ebp + eax - 1]
dec eax
cmp cl, 0x5c
je 0x464a90
cmp cl, 0x3a
jne 0x464a6a
xor edx, edx
lea ecx, [eax + 1]
inc edx
cmp ecx, edx
jg 0x464a91
jmp 0x464ace
xor eax, eax
jmp 0x46475f
inc eax
push ebp
push eax
push 0x49f986
call fcn.004555e0
add esp, 0xc
mov edi, eax
xor eax, eax
push edi
push eax
push eax
call fcn.00413241
add esp, 0xc
mov ebx, eax
push eax
call dword [0x4b9304]
push ebx
mov ebx, dword [esp + 4]
call fcn.00410de6
add esp, 4
push edi
call fcn.00410de6
add esp, 4
push 0xd00
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
je 0x464ba2
mov edi, eax
mov eax, dword [esp]
mov edx, dword [esp]
mov ebx, dword [eax]
mov eax, dword [esp]
mov eax, dword [eax + 4]
imul esi, eax, 0x64
lea ecx, [eax + 1]
lea eax, [ebx + esi]
mov dword [edx + 4], ecx
mov dword [ebx + esi], 2
mov dword [esp + 4], eax
push ebp
push str.Using_GSSAPI_from_user_specified_library__s
call fcn.004555e0
add esp, 8
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + esi + 4], eax
mov dword [ebx + esi + 0x60], edi
push str.gss_delete_sec_context
push edi
call ebp
mov dword [ebx + esi + 0x34], eax
push str.gss_display_status
push edi
call ebp
mov dword [ebx + esi + 0x38], eax
push str.gss_get_mic
push edi
call ebp
mov dword [ebx + esi + 0x3c], eax
push str.gss_verify_mic
push edi
call ebp
mov dword [ebx + esi + 0x40], eax
push str.gss_import_name
push edi
call ebp
mov dword [ebx + esi + 0x44], eax
push str.gss_init_sec_context
push edi
call ebp
mov dword [ebx + esi + 0x48], eax
push str.gss_release_buffer
push edi
call ebp
mov dword [ebx + esi + 0x4c], eax
push str.gss_release_cred
push edi
call ebp
mov dword [ebx + esi + 0x50], eax
push str.gss_release_name
push edi
call ebp
mov dword [ebx + esi + 0x54], eax
mov ebx, dword [esp]
push dword [esp + 4]
call fcn.0043bcd4
add esp, 4
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.0046ef41
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret