Function at 0x100aa440
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x1c
push ebx
push edi
mov edi, ecx
mov ebx, eax
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x100aa46b
add edi, 0x10
push edi
mov edx, 0x10263358
call fcn.101e5eb0
pop edi
mov eax, 0x9d1
pop ebx
add esp, 0x1c
ret 0xc
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.C_InitToken
push eax
call esi
mov ebp, eax
test ebp, ebp
jne 0x100aa492
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_InitToken
jmp 0x100aa538
mov eax, dword [edi + 0xc]
push str.C_OpenSession
push eax
call esi
mov dword [esp + 0x18], eax
test eax, eax
jne 0x100aa4b6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_OpenSession
jmp 0x100aa538
mov ecx, dword [edi + 0xc]
push str.C_Login
push ecx
call esi
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x100aa4d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_Login
jmp 0x100aa538
mov edx, dword [edi + 0xc]
push str.C_InitPIN
push edx
call esi
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100aa4f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_InitPIN
jmp 0x100aa538
mov eax, dword [edi + 0xc]
push str.C_Logout
push eax
call esi
mov dword [esp + 0x24], eax
test eax, eax
jne 0x100aa519
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_Logout
jmp 0x100aa538
mov ecx, dword [edi + 0xc]
push str.C_CloseSession
push ecx
call esi
mov dword [esp + 0x28], eax
test eax, eax
jne 0x100aa557
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_CloseSession
push 0x102633c8
lea eax, [edi + 0x10]
call fcn.101e6de0
add esp, 0xc
pop esi
pop ebp
pop edi
mov eax, 0x9d0
pop ebx
add esp, 0x1c
ret 0xc
mov esi, dword [esp + 0x38]
mov dword [esp + 0x14], str.Licensed_PKI_Application
mov dword [esp + 0x10], 0
test esi, esi
je 0x100aa597
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100aa574
sub eax, edx
je 0x100aa597
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100aa584
push esi
sub eax, edx
mov edx, dword [esp + 0x34]
push eax
push ebx
push edx
jmp 0x100aa5b5
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100aa5a0
push str.DreamSecurityToken
sub eax, edx
push eax
mov eax, dword [esp + 0x38]
push ebx
push eax
call ebp
add esp, 0x10
test eax, eax
je 0x100aa5e0
push 0x102650b8
push str.C_InitToken
mov edx, eax
push 0x1f40
mov eax, edi
call fcn.100b3bd0
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret 0xc
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x10]
push ecx
push 0
lea edx, [esp + 0x1c]
push edx
push 6
push eax
call dword [esp + 0x2c]
add esp, 0x14
test eax, eax
je 0x100aa620
push 0x102650d8
push str.C_OpenSession
mov edx, eax
push 0x1f43
mov eax, edi
call fcn.100b3bd0
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret 0xc
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100aa625
mov ecx, dword [esp + 0x10]
sub eax, edx
push eax
push ebx
push 0
push ecx
call dword [esp + 0x2c]
add esp, 0x10
test eax, eax
je 0x100aa664
push str.Security_Officer
push str.C_Login
mov edx, eax
push 0x1f45
mov eax, edi
call fcn.100b3bd0
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret 0xc
mov ebx, dword [esp + 0x34]
mov eax, ebx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100aa670
sub eax, edx
mov edx, dword [esp + 0x10]
push eax
push ebx
push edx
call dword [esp + 0x2c]
add esp, 0xc
test eax, eax
je 0x100aa6ad
push 0x1026512c
push str.C_InitPIN
mov edx, eax
push 0x1f47
mov eax, edi
call fcn.100b3bd0
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret 0xc
mov eax, dword [esp + 0x10]
push eax
call dword [esp + 0x28]
add esp, 4
test eax, eax
je 0x100aa6df
push 0x10265158
push str.C_Logout
mov edx, eax
push 0x1f48
mov eax, edi
call fcn.100b3bd0
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret 0xc
mov ecx, dword [esp + 0x10]
push ecx
call dword [esp + 0x2c]
add esp, 4
test eax, eax
je 0x100aa711
push 0x10265178
push str.C_CloseSession
mov edx, eax
push 0x1f44
mov eax, edi
call fcn.100b3bd0
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x1c
ret 0xc
pop esi
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 0x1c
ret 0xc