Function at 0x5ec3d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x703eb0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0xa0], eax
mov eax, edi
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xa4], edx
lea ebx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5ec410
mov edx, dword [ebp + 0x18]
sub eax, ebx
lea eax, [eax + edx + 0x14]
cmp eax, 0x80
ja 0x5ec64c
lea eax, [ecx + 1]
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
sub ecx, ebx
add ecx, esi
mov esi, edi
mov dword [ebp - 0xac], ecx
lea eax, [esi + 1]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x5ec444
sub esi, eax
push esi
lea ecx, [ebp - 0x84]
push edi
push ecx
call fcn.00523380
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xa0]
push edi
push edx
lea eax, [ebp + esi - 0x84]
push eax
call fcn.00523380
mov eax, dword [ebp - 0x9c]
lea ecx, [ebp - 0x94]
push ecx
add esi, edi
push esi
lea edx, [ebp - 0x84]
push edx
push ebx
push eax
call fcn.00605290
mov edi, dword [ebp + 0x20]
add esp, 0x2c
test edi, edi
jle 0x5ec542
mov ecx, dword [ebp - 0xa4]
mov eax, 0x10
sub eax, ecx
mov dword [ebp - 0xa8], eax
lea eax, [edi - 1]
shr eax, 4
inc eax
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xa0], eax
lea ecx, [ebp - 0x18]
push ecx
lea eax, [esi + 0x10]
push eax
mov eax, dword [ebp - 0x9c]
lea edx, [ebp - 0x94]
push edx
push ebx
push eax
call fcn.00605290
mov eax, dword [ebp - 0x9c]
lea ecx, [ebp - 0x94]
push ecx
push 0x10
mov edx, ecx
push edx
push ebx
push eax
call fcn.00605290
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xb0]
add edx, ecx
add esp, 0x28
cmp edx, edi
jle 0x5ec60a
mov eax, edi
and eax, reloc.OLEAUT32.dll_SafeArrayDestroy
jns 0x5ec521
dec eax
or eax, 0xfffffff0
inc eax
test eax, eax
jle 0x5ec533
push eax
lea eax, [ebp - 0x18]
push eax
push ecx
call fcn.00523380
add esp, 0xc
add dword [ebp - 0xb0], 0x10
dec dword [ebp - 0xa0]
jne 0x5ec4c5
mov eax, dword [ebp - 0xac]
lea ecx, [ebp - 0x98]
push ecx
push esi
lea edx, [ebp - 0x84]
push edx
push ebx
push eax
call fcn.00605330
add esp, 0x14
test edi, edi
jle 0x5ec64c
mov eax, dword [ebp - 0xa4]
mov ecx, 0x14
sub ecx, eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xa0], ecx
lea ecx, [edi - 1]
mov eax, 0xcccccccd
mul ecx
add esi, 0x14
mov dword [ebp - 0xa8], esi
mov esi, edx
shr esi, 4
inc esi
mov dword [ebp - 0xa4], esi
mov eax, dword [ebp - 0xa8]
lea edx, [ebp - 0x18]
push edx
mov edx, dword [ebp - 0xac]
push eax
lea ecx, [ebp - 0x98]
push ecx
push ebx
push edx
call fcn.00605330
mov edx, dword [ebp - 0xac]
lea eax, [ebp - 0x98]
push eax
push 0x14
mov ecx, eax
push ecx
push ebx
push edx
call fcn.00605330
mov eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0x9c]
add esp, 0x28
cmp eax, edi
jle 0x5ec614
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
mov ecx, edi
sub ecx, edx
jmp 0x5ec619
mov eax, 0x10
jmp 0x5ec525
mov ecx, 0x14
xor eax, eax
test ecx, ecx
jle 0x5ec638
nop
mov dl, byte [ebp + eax - 0x18]
mov esi, dword [ebp - 0x9c]
xor byte [esi + eax], dl
inc eax
cmp eax, ecx
jl 0x5ec620
mov esi, dword [ebp - 0xa4]
add dword [ebp - 0x9c], 0x14
dec esi
mov dword [ebp - 0xa4], esi
jne 0x5ec5a1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00521602
mov esp, ebp
pop ebp
ret