Function at 0x4a22e0
Capabilities:
Encrypt data via sspi

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x4a3160
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x18]
mov esi, dword fs:[0]
mov dword [ebp - 0x18], esi
mov dword fs:[0], ecx
lea ecx, [ebp - 0x60]
mov dword [edx + 0x1c], eax
mov dword [ebp - 0x10], 0
call fcn.0049ec00
mov eax, dword [ebp - 0x60]
mov esi, dword [ebp + 8]
cmp eax, 2
jne 0x4a234e
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp + 0xc]
cmp bl, 4
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], ebx
je 0x4a2590
jmp 0x4a25bc
mov edi, dword [ebp + 0xc]
test eax, eax
je 0x4a23bd
mov ebx, dword [edi + 0x68]
mov esi, dword [edi + 0x78]
mov eax, ebx
xor eax, esi
or eax, dword [edi + 0x6c]
jne 0x4a2504
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
cmp eax, ebx
mov dword [ebp - 0x24], ecx
cmovb ebx, eax
lea eax, [edi + 0x70]
add ecx, ebx
mov dword [ebp - 0x2c], ebx
add edx, ecx
mov dword [ebp - 0x28], ecx
sub edx, esi
jbe 0x4a23d4
mov edi, dword [edi + 0x74]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], edx
sub edi, esi
cmp edi, edx
jae 0x4a23d9
push edx
push esi
push dword [ebp - 0x20]
call fcn.0059c3c0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov esi, dword [eax + 0x78]
mov eax, dword [ebp - 0x20]
jmp 0x4a23df
mov byte [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0x80090317
mov eax, 0x80090317
xor ebx, ebx
jmp 0x4a25bc
mov edx, dword [ebp - 0x24]
jmp 0x4a2418
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
mov edi, dword [eax]
cmp dword [ebp - 0x30], 2
lea eax, [edi + esi]
jb 0x4a240b
mov ecx, dword [ebp - 0x30]
dec ecx
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
add esp, 0xc
mov eax, dword [ebp - 0x30]
lea esi, [esi + eax - 1]
add edi, esi
mov eax, edi
mov byte [eax], 0
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x20]
inc esi
mov dword [edi + 0x78], esi
cmp ecx, edx
jb 0x4a266c
cmp ecx, esi
ja 0x4a267d
mov eax, dword [eax]
add eax, edx
push ebx
push dword [ebp + 0x14]
push eax
mov esi, edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, esi
add esp, 0xc
mov ecx, dword [edi + 0x78]
cmp ecx, esi
jb 0x4a2690
mov esi, dword [ebp - 0x28]
mov eax, ecx
sub eax, esi
jb 0x4a26a1
mov ecx, dword [edi + 0x70]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 4
add edx, ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], 1
add esi, ecx
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x60]
mov dword [ebp - 0x44], 6
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x64], eax
lea eax, [edi + 0x80]
push 0
push ecx
push 0
push eax
call dword [sym.imp.secur32.dll_EncryptMessage]
test eax, eax
je 0x4a24d3
mov edi, dword [ebp + 0xc]
xor ebx, ebx
mov byte [ebp - 0x60], 0
jmp 0x4a25b6
mov eax, dword [ebp - 0x54]
mov edi, dword [ebp + 0xc]
add eax, dword [ebp - 0x60]
mov esi, dword [edi + 0x78]
add eax, dword [ebp - 0x48]
cmp esi, eax
jb 0x4a24eb
mov esi, eax
mov dword [edi + 0x78], eax
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov dword [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0xa4], eax
cmp esi, ebx
je 0x4a2587
lea eax, [edi + 8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], eax
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, esi
sub eax, ebx
jb 0x4a265b
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je 0x4a2645
mov edx, dword [edi + 0x70]
mov dword [ebp - 0x24], ebx
add edx, ebx
push eax
push edx
push ecx
push dword [ebp - 0x2c]
lea eax, [ebp - 0x60]
push eax
call fcn.00533de0
add esp, 0x14
mov eax, dword [ebp - 0x28]
cmp byte [ebp - 0x60], 5
je 0x4a25a2
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov edi, dword [ebp + 0xc]
mov ecx, ebx
shr ecx, 0x10
cmp bl, 4
mov dword [ebp - 0x20], ecx
jne 0x4a25a9
mov ebx, dword [ebp - 0x24]
mov dword [edi + 0x6c], 0
mov dword [ebp - 0x28], eax
add ebx, eax
mov dword [edi + 0x68], ebx
mov esi, dword [edi + 0x78]
cmp esi, ebx
jne 0x4a2520
mov eax, dword [edi + 0xa4]
mov esi, dword [ebp + 8]
mov byte [esi], 4
mov dword [esi + 4], eax
mov dword [edi + 0x1c], 0
jmp 0x4a2632
mov edi, dword [ebp + 0xc]
mov bl, 1
mov bh, 0xd
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 0x60], bl
mov byte [ebp - 0x5f], bh
mov word [ebp - 0x5e], cx
mov dword [ebp - 0x5c], eax
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x28], eax
call fcn.0049b690
cmp al, 0xd
jne 0x4a2622
cmp bl, 3
mov byte [esi], 5
mov dword [edi + 0x1c], 0
jb 0x4a2632
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x20], ecx
push ecx
mov dword [ebp - 0x24], eax
call dword [eax]
add esp, 4
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4a260e
push dword [ecx + 8]
push eax
push dword [ebp - 0x20]
call fcn.00407080
add esp, 0xc
push 4
push 0xc
push dword [ebp - 0x28]
call fcn.00407080
add esp, 0xc
mov esi, dword [ebp + 8]
jmp 0x4a2632
movsd xmm0, qword [ebp - 0x60]
mov dword [edi + 0x1c], 0
movsd qword [esi], xmm0
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, esi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x60c8cc
push 0x29
push 0x60c8a0
call fcn.005a0b60
add esp, 0xc
jmp 0x4a26b0
push 0x60d3b4
push esi
push ebx
call fcn.005a0f50
add esp, 0xc
jmp 0x4a26b0
push 0x60d334
push ecx
push edx
call fcn.005a1030
add esp, 0xc
jmp 0x4a26b0
push 0x60d334
push esi
push dword [ebp - 0x28]
call fcn.005a0fc0
add esp, 0xc
jmp 0x4a26b0
push 0x60d344
push ecx
push edx
call fcn.005a0fc0
add esp, 0xc
jmp 0x4a26b0
push 0x60d354
push ecx
push esi
call fcn.005a0fc0
add esp, 0xc
ud2