Function at 0x100caac0
Capabilities:
Encrypt data via sspi

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
cmp dword [edi], 1
jne 0x100cab31
lea edx, [edi + 8]
lea ecx, [esp + 0x14]
mov dword [edi + 0xa0], eax
mov dword [esp + 4], edx
call fcn.100cbe90
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x14], 1
jne 0x100cab4d
mov ebp, ebx
mov cl, bh
movzx edx, bl
and ebp, 0xffff0000
test bl, bl
je 0x100cac19
cmp bl, 1
je 0x100cabf0
mov eax, esi
mov al, byte [esi + 8]
cmp al, 0xa
jne 0x100cabfa
jmp 0x100cad38
add edi, 4
mov ecx, esi
mov edx, edi
push ebp
push dword [esp + 0x7c]
push eax
call fcn.10107420
add esp, 0xc
mov eax, esi
jmp 0x100cadfc
test ebx, ebx
je 0x100cac25
mov ebx, dword [edi + 0x48]
mov eax, dword [edi + 0x38]
xor eax, ebx
or eax, dword [edi + 0x3c]
jne 0x100cadbc
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp eax, ebp
cmovb ebp, eax
lea eax, [edi + 0x40]
lea edx, [ebp + esi]
mov dword [esp + 0xc], eax
add ecx, edx
mov dword [esp + 0x10], edx
mov eax, ecx
sub eax, ebx
mov dword [esp], eax
jbe 0x100cac42
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
call fcn.10116f60
mov edx, dword [edi + 0x40]
mov ecx, dword [edi + 0x48]
cmp dword [esp], 2
lea eax, [edx + ecx]
jb 0x100cac2f
mov dword [esp + 8], eax
mov eax, dword [esp]
mov dword [esp + 0x44], ecx
lea ecx, [eax - 1]
push ecx
push 0
push dword [esp + 0x10]
mov dword [esp + 0x14], edx
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 8]
not ebx
add eax, ebx
add eax, ecx
add edx, eax
mov eax, dword [esp]
lea ecx, [ecx + eax - 1]
mov eax, edx
jmp 0x100cac35
mov eax, ecx
cmp al, 0xa
je 0x100cad38
movzx eax, cl
mov ebx, dword [esp + 0x6c]
shl eax, 8
or ebp, eax
or ebp, edx
mov dword [ebx], 1
mov dword [ebx + 4], ebp
mov dword [ebx + 8], esi
jmp 0x100cadf0
mov dword [esp], edx
mov dword [esp + 4], ecx
jmp 0x100cad22
mov esi, 0x80090317
jmp 0x100cad0f
cmp dword [esp], 0
je 0x100cac39
inc ecx
mov byte [eax], 0
mov edx, dword [esp + 0x10]
mov ebx, ecx
mov dword [edi + 0x48], ecx
mov ecx, dword [esp + 0xc]
cmp edx, esi
jb 0x100cae04
cmp ebx, edx
jb 0x100cae15
test ebp, ebp
je 0x100cac77
mov eax, dword [ecx]
add eax, esi
push ebp
push dword [esp + 0x7c]
push eax
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x1c]
mov ecx, ebx
add esp, 0xc
mov ebx, dword [edi + 0x48]
cmp ebx, esi
jb 0x100cae20
mov eax, ebx
sub eax, edx
jb 0x100cae2b
mov ecx, dword [ecx]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 7
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 4
add esi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 1
add edx, ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x30], 6
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x4c]
push 0
push ecx
push 0
push eax
call sub.Secur32.dll_EncryptMessage
test eax, eax
je 0x100cad94
mov esi, eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp], 0
mov dword [esp + 4], 0
mov ecx, esi
call fcn.100f4830
mov ecx, dword [esp + 4]
mov edx, dword [esp]
cmp al, 0xa
jne 0x100cabfa
mov eax, dword [esp + 0x6c]
cmp bl, 1
mov ebx, eax
mov dword [eax], 2
jbe 0x100cadf0
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov eax, dword [esi + 4]
cmp dword [eax + 4], 0
je 0x100cad84
mov ebx, dword [esi]
cmp dword [eax + 8], 9
jae 0x100cad70
call sub.KERNEL32.dll_GetProcessHeap
push ebx
jmp 0x100cad78
call sub.KERNEL32.dll_GetProcessHeap
push dword [ebx - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x6c]
call sub.KERNEL32.dll_GetProcessHeap
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
jmp 0x100cadf0
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x14]
add eax, dword [esp + 0x2c]
cmp dword [edi + 0x48], eax
jb 0x100cada8
mov dword [edi + 0x48], eax
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0xc0], ebp
mov edx, dword [esp + 4]
lea ecx, [esp + 0x14]
call fcn.100ccd50
cmp dword [esp + 0x14], 1
jne 0x100caddd
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
jmp 0x100cab01
mov eax, dword [edi + 0xc0]
mov ebx, dword [esp + 0x6c]
mov dword [ebx], 0
mov dword [ebx + 4], eax
mov eax, ebx
mov dword [edi + 0xa0], 0
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
push 0x103c9d0c
call fcn.10009f50
add esp, 4
ud2
mov ecx, edx
mov edx, ebx
push 0x103c9d0c
jmp 0x100cae34
mov ecx, esi
mov edx, ebx
push 0x103c9d1c
jmp 0x100cae34
mov ecx, edx
mov edx, ebx
push 0x103c9d2c
call fcn.10008b80
add esp, 4
ud2