Function at 0x5cd3a0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x174
mov eax, dword [0x73d6e0]
xor eax, esp
mov dword [esp + 0x170], eax
mov eax, dword [ecx + 0x60]
mov edx, dword [ecx + 0x5c]
push ebx
movzx ebx, byte [ecx + 0x58]
inc ebx
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
push esi
movd xmm0, ebx
mov eax, dword [eax + 0x38]
pshufd xmm0, xmm0, 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ebx
movdqa xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x1c], ecx
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x28], edi
test eax, eax
jne 0x5cd90b
mov eax, dword [0x748bc8]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov esi, eax
cmp eax, 0x40
mov eax, 0x40
cmovg esi, eax
mov eax, dword [edx]
push esi
push edi
push dword [ebp + 0xc]
mov dword [esp + 0x38], esi
push ecx
mov ecx, edx
call dword [eax + 0xc]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x78]
push esi
push edx
push dword [ebp + 0xc]
mov eax, dword [ecx]
push dword [esp + 0x2c]
call dword [eax + 0xc]
cmp ebx, 0x100
jne 0x5cd63e
xor edx, edx
test esi, esi
jle 0x5cd8cd
cmp esi, 8
jb 0x5cd5c5
cmp dword [esp + 0x38], 2
jl 0x5cd5c5
lea eax, [esp + esi*4 + 0x74]
lea ecx, [esi - 1]
lea ecx, [edi + ecx*4]
cmp edi, eax
ja 0x5cd48b
lea eax, [esp + 0x78]
cmp ecx, eax
jae 0x5cd5c5
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x5cd499
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm5, xmmword [0x6cde10]
lea ebx, [esp + 0x78]
mov ecx, esi
movdqa xmm7, xmm5
sub ecx, eax
pandn xmm7, xmmword [0x6f8850]
mov eax, 0x18
mov dword [esp + 0x1c], ecx
mov ecx, edi
movd xmm4, eax
mov eax, 8
movdqa xmmword [esp + 0x40], xmm4
movd xmm6, eax
mov eax, edi
neg eax
add ebx, eax
mov dword [esp + 0x18], ebx
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0x18]
add eax, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
lea ebx, [ebx]
movdqu xmm2, xmmword [ecx + esi]
add edx, 8
lea ecx, [ecx + 0x20]
movdqa xmm1, xmmword [0x6d1840]
movdqa xmm0, xmm2
movdqu xmm3, xmmword [ecx - 0x20]
psrld xmm0, xmm4
psubd xmm1, xmm0
movdqa xmm0, xmm5
pand xmm0, xmm3
pmulld xmm0, xmm1
psrld xmm0, xmm6
psrld xmm3, xmm6
pand xmm0, xmm5
pand xmm3, xmm5
pmulld xmm3, xmm1
pand xmm3, xmm7
por xmm0, xmm3
paddd xmm0, xmm2
movdqa xmm2, xmmword [0x6d1840]
movdqu xmmword [ecx - 0x20], xmm0
movdqu xmm4, xmmword [ecx + edi - 0x20]
movdqu xmm3, xmmword [ecx - 0x10]
movdqa xmm0, xmm4
movdqa xmm1, xmm3
psrld xmm0, xmmword [esp + 0x40]
psrld xmm1, xmm6
psubd xmm2, xmm0
movdqa xmm0, xmm5
pand xmm0, xmm3
pand xmm1, xmm5
pmulld xmm0, xmm2
pmulld xmm1, xmm2
pand xmm1, xmm7
psrld xmm0, xmm6
pand xmm0, xmm5
por xmm1, xmm0
paddd xmm1, xmm4
movdqa xmm4, xmmword [esp + 0x40]
movdqu xmmword [ecx - 0x10], xmm1
cmp edx, eax
jl 0x5cd500
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp edx, esi
jge 0x5cd8cd
lea eax, [esp + 0x78]
sub eax, edi
lea ebx, [edi + edx*4]
sub esi, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
mov edi, dword [ebx + eax]
lea ebx, [ebx + 4]
mov esi, dword [ebx - 4]
mov eax, edi
shr eax, 0x18
mov ecx, 0x100
sub ecx, eax
mov edx, esi
and edx, 0xff00ff
mov eax, esi
imul edx, ecx
shr eax, 8
and eax, 0xffff00ff
shr esi, 8
imul eax, ecx
and esi, 0xff00ff
imul esi, ecx
shr edx, 8
xor edx, eax
mov eax, dword [esp + 0x14]
and edx, 0xff00ff
xor edx, esi
add edx, edi
dec dword [esp + 0x18]
mov dword [ebx - 4], edx
jne 0x5cd5e0
mov ebx, dword [esp + 0x30]
jmp 0x5cd8c5
xor ecx, ecx
test esi, esi
jle 0x5cd8cd
cmp esi, 8
jb 0x5cd816
cmp dword [esp + 0x38], 2
jl 0x5cd816
lea eax, [esp + esi*4 + 0x74]
lea edx, [esi - 1]
lea edx, [edi + edx*4]
cmp edi, eax
ja 0x5cd676
lea eax, [esp + 0x78]
cmp edx, eax
jae 0x5cd816
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x5cd684
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm6, xmmword [0x6cde10]
lea ebx, [esp + 0x78]
movdqa xmm5, xmmword [esp + 0x50]
mov edx, esi
sub edx, eax
movdqa xmm0, xmm6
pandn xmm0, xmmword [0x6f8850]
mov eax, 0x18
mov dword [esp + 0x14], edx
mov edx, edi
movdqa xmmword [esp + 0x40], xmm0
movd xmm4, eax
mov eax, 8
movdqa xmmword [esp + 0x60], xmm4
movd xmm7, eax
mov eax, edi
neg eax
add ebx, eax
mov dword [esp + 0x1c], ebx
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0x1c]
add eax, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
movdqu xmm2, xmmword [edx + esi]
add ecx, 8
lea edx, [edx + 0x20]
movdqa xmm1, xmmword [0x6d1840]
movdqa xmm0, xmm2
movdqu xmm3, xmmword [edx - 0x20]
psrld xmm0, xmm4
movdqa xmm4, xmm6
psubd xmm1, xmm0
pand xmm4, xmm3
movdqa xmm0, xmm6
pmulld xmm4, xmm1
psrld xmm3, xmm7
psrld xmm4, xmm7
pand xmm3, xmm6
pand xmm4, xmm6
pmulld xmm3, xmm1
pand xmm3, xmmword [esp + 0x40]
por xmm4, xmm3
paddd xmm4, xmm2
pand xmm0, xmm4
movdqa xmm1, xmm4
movdqa xmm4, xmm6
psrld xmm1, xmm7
pmulld xmm0, xmm5
pand xmm1, xmm6
pmulld xmm1, xmm5
pand xmm1, xmmword [esp + 0x40]
psrld xmm0, xmm7
pand xmm0, xmm6
por xmm1, xmm0
movdqu xmmword [edx - 0x20], xmm1
movdqa xmm1, xmmword [0x6d1840]
movdqu xmm2, xmmword [edx + edi - 0x20]
movdqu xmm3, xmmword [edx - 0x10]
movdqa xmm0, xmm2
pand xmm4, xmm3
psrld xmm0, xmmword [esp + 0x60]
psrld xmm3, xmm7
psubd xmm1, xmm0
movdqa xmm0, xmm6
pand xmm3, xmm6
pmulld xmm4, xmm1
pmulld xmm3, xmm1
pand xmm3, xmmword [esp + 0x40]
psrld xmm4, xmm7
pand xmm4, xmm6
por xmm4, xmm3
paddd xmm4, xmm2
movdqa xmm1, xmm4
pand xmm0, xmm4
movdqa xmm4, xmmword [esp + 0x60]
psrld xmm1, xmm7
pmulld xmm0, xmm5
pand xmm1, xmm6
pmulld xmm1, xmm5
pand xmm1, xmmword [esp + 0x40]
psrld xmm0, xmm7
pand xmm0, xmm6
por xmm1, xmm0
movdqu xmmword [edx - 0x10], xmm1
cmp ecx, eax
jl 0x5cd6f1
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp ecx, esi
jge 0x5cd8cd
lea edx, [esp + 0x78]
sub edx, edi
lea eax, [edi + ecx*4]
sub esi, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
mov edx, dword [eax]
mov edi, edx
mov ecx, dword [esp + 0x14]
and edi, 0xff00ff
mov esi, dword [ecx + eax]
mov eax, esi
shr eax, 0x18
mov ecx, 0x100
sub ecx, eax
mov eax, edx
imul edi, ecx
shr eax, 8
and eax, 0xffff00ff
shr edx, 8
imul eax, ecx
and edx, 0xff00ff
imul edx, ecx
shr edi, 8
xor edi, eax
and edi, 0xff00ff
xor edi, edx
add edi, esi
mov ecx, edi
mov eax, edi
and ecx, 0xff00ff
shr eax, 8
imul ecx, ebx
and eax, 0xffff00ff
imul eax, ebx
shr edi, 8
and edi, 0xff00ff
imul edi, ebx
shr ecx, 8
xor ecx, eax
mov eax, dword [esp + 0x18]
and ecx, 0xff00ff
xor ecx, edi
mov dword [eax], ecx
add eax, 4
dec dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jne 0x5cd835
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
lea edi, [edi + esi*4]
mov ecx, dword [esp + 0x20]
sub eax, esi
mov edx, dword [esp + 0x34]
add ecx, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
test eax, eax
jg 0x5cd413
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.005472b9
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov esi, eax
cmp eax, 0x40
mov eax, 0x40
cmovg esi, eax
mov eax, dword [edx]
push esi
push edi
push dword [ebp + 0xc]
mov dword [esp + 0x28], esi
push ecx
mov ecx, edx
call dword [eax + 0xc]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x78]
push esi
push edx
push dword [ebp + 0xc]
mov eax, dword [ecx]
push dword [esp + 0x2c]
call dword [eax + 0xc]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x78]
push 0
push esi
push edx
mov eax, dword [ecx]
push edi
call dword [eax + 0x10]
cmp ebx, 0x100
je 0x5cda81
xor eax, eax
test esi, esi
jle 0x5cda81
cmp esi, 8
jb 0x5cda35
cmp dword [0x748bc8], 2
jl 0x5cda35
mov ecx, esi
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x5cd993
dec ecx
or ecx, 0xfffffff8
inc ecx
movdqa xmm3, xmmword [0x6cde10]
mov edx, esi
movdqa xmm5, xmmword [esp + 0x50]
sub edx, ecx
mov ecx, 8
movdqa xmm6, xmm3
pandn xmm6, xmmword [0x6f8850]
movd xmm4, ecx
mov ecx, edi
lea esp, [esp]
movdqu xmm1, xmmword [ecx]
lea ecx, [ecx + 0x20]
add eax, 8
movdqa xmm0, xmm3
pand xmm0, xmm1
movdqa xmm2, xmm1
pmulld xmm0, xmm5
psrld xmm2, xmm4
psrld xmm0, xmm4
pand xmm2, xmm3
pand xmm0, xmm3
pmulld xmm2, xmm5
pand xmm2, xmm6
por xmm2, xmm0
movdqa xmm0, xmm3
movdqu xmmword [ecx - 0x20], xmm2
movdqu xmm1, xmmword [ecx - 0x10]
pand xmm0, xmm1
psrld xmm1, xmm4
pmulld xmm0, xmm5
pand xmm1, xmm3
psrld xmm0, xmm4
pmulld xmm1, xmm5
pand xmm0, xmm3
pand xmm1, xmm6
por xmm0, xmm1
movdqu xmmword [ecx - 0x10], xmm0
cmp eax, edx
jl 0x5cd9c0
cmp eax, esi
jge 0x5cda81
lea esp, [esp]
mov edx, dword [edi + eax*4]
mov esi, edx
and esi, 0xff00ff
mov ecx, edx
imul esi, ebx
shr ecx, 8
and ecx, 0xffff00ff
shr edx, 8
imul ecx, ebx
and edx, 0xff00ff
imul edx, ebx
shr esi, 8
xor esi, ecx
and esi, 0xff00ff
xor esi, edx
mov dword [edi + eax*4], esi
inc eax
mov esi, dword [esp + 0x1c]
cmp eax, esi
jl 0x5cda40
mov eax, dword [esp + 0x24]
lea edi, [edi + esi*4]
mov ecx, dword [esp + 0x20]
sub eax, esi
mov edx, dword [esp + 0x34]
add ecx, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
test eax, eax
jg 0x5cd912
mov ecx, dword [esp + 0x17c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005472b9
mov esp, ebp
pop ebp
ret 0x10