Function at 0x4651d0
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 [0x4b6078]
xor eax, esp
mov dword [esp + 0x14], eax
push 0
push 8
push 1
call fcn.00410b8c
add esp, 0xc
mov ebp, eax
mov eax, dword [0x4b9300]
test eax, eax
jne 0x465215
push str.kernel32.dll
call fcn.004675ca
add esp, 4
test eax, eax
mov dword [0x4b9300], eax
je 0x465562
push str.AddDllDirectory
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
xor edi, edi
mov dword [0x4b9304], eax
push edi
push 0x64
push 3
call fcn.00410b8c
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 0x465412
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 0x46533b
cmp dword [esp + 0xc], 1
jne 0x46533b
mov eax, dword [esp + 8]
xor edi, edi
add eax, 0x14
push edi
push 1
push eax
call fcn.00410b8c
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 0x465332
cmp dword [esp + 0xc], 1
jne 0x465332
push ebx
call fcn.0047f0f0
add esp, 4
mov byte [ebx + eax + 4], 0
mov dword [ebx + eax], 0x6e69625c
cmp dword [0x4b9304], 0
je 0x4652fb
xor eax, eax
push ebx
push eax
push eax
call fcn.00413079
add esp, 0xc
mov edi, eax
push eax
call dword [0x4b9304]
push edi
call fcn.00410c0e
add esp, 4
push ebx
call fcn.0047f0f0
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.00410c0e
add esp, 4
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebp, dword [esp]
test edi, edi
je 0x465412
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.0043c020
add esp, 4
mov esi, dword [esp + 0x2c]
push str.secur32.dll
call fcn.004675ca
add esp, 4
test eax, eax
je 0x46551b
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
xor eax, eax
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], 0x4656ed
mov dword [esi + ebp + 0xc], 0x465705
mov dword [esi + ebp + 0x10], 0x46572f
mov dword [esi + ebp + 0x14], 0x465754
mov dword [esi + ebp + 0x18], 0x46593b
mov dword [esi + ebp + 0x1c], 0x46595d
mov dword [esi + ebp + 0x20], 0x4659de
mov dword [esi + ebp + 0x24], 0x465a19
mov dword [esi + ebp + 0x28], 0x465afc
mov dword [esi + ebp + 0x2c], 0x465b85
mov dword [esi + ebp + 0x30], 0x465b97
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp]
push 0x2c
push esi
call fcn.004034aa
add esp, 8
mov esi, dword [eax]
cmp byte [esi], 0
je 0x465687
cmp dword [0x4b9304], 0
je 0x4655a3
push esi
call fcn.0047f0f0
add esp, 4
test eax, eax
jle 0x4655a3
mov cl, byte [esi + eax - 1]
dec eax
cmp cl, 0x5c
je 0x465569
cmp cl, 0x3a
jne 0x465543
xor edx, edx
lea ecx, [eax + 1]
inc edx
cmp ecx, edx
jg 0x46556a
jmp 0x4655a3
xor eax, eax
jmp 0x465221
inc eax
push esi
push eax
push 0x4a0685
call fcn.004560a0
add esp, 0xc
mov edi, eax
xor eax, eax
push edi
push eax
push eax
call fcn.00413079
add esp, 0xc
mov ebx, eax
push eax
call dword [0x4b9304]
push ebx
call fcn.00410c0e
add esp, 4
push edi
call fcn.00410c0e
add esp, 4
push 0xd00
push 0
push esi
call dword [sym.imp.KERNEL32.DLL_LoadLibraryExA]
test eax, eax
je 0x465687
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.004560a0
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.0043c020
add esp, 4
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.0046fa9a
mov eax, ebp
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret