Function at 0x103a764
Capabilities:
Check for time delay via gettickcount
Encrypt or decrypt via wincrypt

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
push esi
mov dword [ebp - 8], ebx
mov dword [ebp - 0x18], ebx
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
cmp dx, bx
jne 0x103a77f
sub eax, ecx
sar eax, 1
lea esi, [eax + eax]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x10], ebx
jne 0x103a7d0
mov eax, 0x80004003
push eax
push 0x1008c58
push 0x4b6
mov dword [ebp - 8], eax
push 0x1008a98
push 0x10018c8
mov ecx, 0x104abe8
call fcn.0102f8f0
jmp 0x103a978
cmp dword [ebp + 0x18], ebx
jne 0x103a7e7
mov eax, 0x80004003
push eax
push 0x1008c58
push 0x4b7
jmp 0x103a7b4
cmp dword [ebp + 0xc], ebx
je 0x103a80b
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
call fcn.0103a66a
cmp eax, ebx
mov dword [ebp - 8], eax
jge 0x103a80b
push eax
push 0x1008c58
push 0x4ba
jmp 0x103a7b7
cmp dword [ebp + 0x14], ebx
je 0x103a819
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x20], eax
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_CryptEncrypt]
push esi
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x1c]
push ebx
push ebx
push 1
push ebx
push dword [eax + 0x10]
call edi
test eax, eax
je 0x103a9bb
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jae 0x103a8dc
cmp dword [ebp - 4], ebx
je 0x103a87a
push 0x104a890
push eax
call fcn.0102ddd1
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
cmp eax, ebx
je 0x103a991
push dword [ebp - 0x14]
push dword [ebp - 4]
push eax
call sub.msvcrt.dll_memcpy
push dword [ebp - 4]
call fcn.0102d44c
add esp, 0x10
push 0x104a890
push dword [ebp - 0xc]
call fcn.0102ddd1
pop ecx
pop ecx
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x103a9a6
push dword [ebp - 0xc]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
cmp dword [ebp - 0x10], ebx
je 0x103a8c4
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp - 4]
call sub.msvcrt.dll_memcpy
push dword [ebp - 0x10]
call fcn.0102d44c
add esp, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x103a8d3
push esi
push dword [ebp + 8]
push dword [ebp - 4]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], esi
push dword [ebp - 0x14]
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
push ebx
push 1
push ebx
push dword [eax + 0x10]
call edi
test eax, eax
je 0x103a9e3
inc dword [ebp - 0x18]
mov esi, dword [ebp - 0xc]
cmp dword [ebp + 0x14], ebx
je 0x103a981
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x20]
cmp eax, dword [ebp + 0x14]
jbe 0x103a820
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
push dword [ebp - 0xc]
push dword [ebp - 4]
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
cmp eax, ebx
jne 0x103a969
mov eax, 0x8007000e
push eax
push 0x1008c58
mov dword [ebp - 8], eax
push 0x513
push 0x1008a98
push 0x10018c8
mov ecx, 0x104abe8
call fcn.0102f8f0
cmp dword [ebp - 0x10], ebx
je 0x103a969
push dword [ebp - 0x10]
call fcn.0102d44c
pop ecx
pop edi
cmp dword [ebp - 4], ebx
je 0x103a978
push dword [ebp - 4]
call fcn.0102d44c
pop ecx
mov eax, dword [ebp - 8]
pop esi
pop ebx
leave
ret 0x14
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax]
jb 0x103a820
jmp 0x103a91f
mov eax, 0x8007000e
push eax
push 0x1008c58
mov dword [ebp - 8], eax
push 0x4d5
jmp 0x103a947
mov eax, 0x8007000e
push eax
push 0x1008c58
mov dword [ebp - 8], eax
push 0x4dd
jmp 0x103a947
push ebx
push 0x1008c58
push 0x4ce
push 0x1008a98
push 0x10018c8
mov ecx, 0x104abe8
call fcn.0102f8f0
mov dword [ebp - 8], 0x80004005
jmp 0x103a969
push ebx
push 0x1008c58
push 0x4f6
jmp 0x103a9c6