Function at 0x10002600
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x1000262c
push 0x10198828
lea ecx, [esi + 0x10]
call fcn.10154630
pop edi
pop esi
pop ebp
mov eax, 0x9d1
pop ebx
add esp, 0x1c
ret 0x10
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.C_InitToken
push eax
call edi
mov ebp, eax
test ebp, ebp
jne 0x10002651
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_InitToken
jmp 0x100026f7
mov eax, dword [esi + 0xc]
push str.C_OpenSession
push eax
call edi
test eax, eax
mov dword [esp + 0x18], eax
jne 0x10002675
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_OpenSession
jmp 0x100026f7
mov ecx, dword [esi + 0xc]
push str.C_Login
push ecx
call edi
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x10002696
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_Login
jmp 0x100026f7
mov edx, dword [esi + 0xc]
push str.C_InitPIN
push edx
call edi
test eax, eax
mov dword [esp + 0x20], eax
jne 0x100026b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_InitPIN
jmp 0x100026f7
mov eax, dword [esi + 0xc]
push str.C_Logout
push eax
call edi
test eax, eax
mov dword [esp + 0x24], eax
jne 0x100026d8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_Logout
jmp 0x100026f7
mov ecx, dword [esi + 0xc]
push str.C_CloseSession
push ecx
call edi
test eax, eax
mov dword [esp + 0x28], eax
jne 0x10002717
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_CloseSession
add esi, 0x10
push 0x1019879c
push esi
call fcn.101552a0
add esp, 0x10
mov eax, 0x9d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x14], str.Licensed_PKI_Application
test edx, edx
mov dword [esp + 0x10], 0
je 0x10002740
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x10002740
push edx
jmp 0x10002745
push str.DreamSecurityToken
mov ebx, dword [esp + 0x38]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x34]
not ecx
dec ecx
push ecx
push ebx
push edi
call ebp
add esp, 0x10
test eax, eax
je 0x10002786
push eax
push 0x1019874c
push str.C_InitToken
push 0x1f40
mov ecx, esi
call fcn.1000a610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
push 0
push eax
push 6
push edi
call dword [esp + 0x2c]
add esp, 0x14
test eax, eax
je 0x100027c1
push eax
push 0x1019872c
push str.C_OpenSession
push 0x1f43
mov ecx, esi
call fcn.1000a610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x14]
push ebx
push eax
push ecx
call dword [esp + 0x2c]
add esp, 0x10
test eax, eax
je 0x10002801
push eax
push str.Security_Officer
push str.C_Login
push 0x1f45
mov ecx, esi
call fcn.1000a610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
mov edx, dword [esp + 0x38]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov edx, dword [esp + 0x18]
push edx
call dword [esp + 0x2c]
add esp, 0xc
test eax, eax
je 0x10002844
push eax
push 0x101986cc
push str.C_InitPIN
push 0x1f47
mov ecx, esi
call fcn.1000a610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
mov eax, dword [esp + 0x10]
push eax
call dword [esp + 0x28]
add esp, 4
test eax, eax
je 0x10002875
push eax
push 0x101986ac
push str.C_Logout
push 0x1f48
mov ecx, esi
call fcn.1000a610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
mov ecx, dword [esp + 0x10]
push ecx
call dword [esp + 0x2c]
add esp, 4
test eax, eax
je 0x100028a6
push eax
push 0x1019868c
push str.C_CloseSession
push 0x1f44
mov ecx, esi
call fcn.1000a610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 0x10