Function at 0x10102d50
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 [0x1025f074]
xor eax, esp
mov dword [esp + 0x170], eax
mov eax, dword [ecx + 0x60]
mov edx, dword [ecx + 0x5c]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
movzx edi, byte [ecx + 0x58]
inc edi
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x28], ebx
movd xmm0, edi
mov eax, dword [eax + 0x38]
pshufd xmm0, xmm0, 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], ecx
movups xmmword [esp + 0x60], xmm0
test eax, eax
jne 0x1010328f
mov eax, dword [0x10266c2c]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x2c], eax
mov esi, eax
cmp eax, 0x40
mov eax, 0x40
cmovg esi, eax
mov eax, dword [edx]
push esi
push ebx
push dword [ebp + 0xc]
mov dword [esp + 0x3c], esi
push ecx
mov ecx, edx
call dword [eax + 0xc]
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x78]
push esi
push edx
push dword [ebp + 0xc]
mov eax, dword [ecx]
push dword [esp + 0x24]
call dword [eax + 0xc]
xor ecx, ecx
cmp edi, 0x100
jne 0x10102fdb
test esi, esi
jle 0x10103251
cmp esi, 8
jb 0x10102f57
cmp dword [esp + 0x34], 2
jl 0x10102f57
lea eax, [esp + esi*4 + 0x74]
lea edx, [esi - 1]
lea edx, [ebx + edx*4]
cmp ebx, eax
ja 0x10102e3a
lea eax, [esp + 0x78]
cmp edx, eax
jae 0x10102f57
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x10102e48
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm5, xmmword [0x102268b0]
lea edi, [esp + 0x78]
mov edx, esi
sub edi, ebx
sub edx, eax
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x24]
lea esi, [esp + 0x88]
mov eax, 0x18
sub esi, ebx
mov dword [esp + 0x1c], esi
movaps xmm7, xmm5
pandn xmm7, xmmword [0x10226b80]
mov esi, dword [esp + 0x14]
movd xmm2, eax
mov eax, 8
movaps xmmword [esp + 0x40], xmm2
movd xmm6, eax
mov eax, ebx
mov ebx, dword [esp + 0x1c]
nop word [eax + eax]
movups xmm4, xmmword [eax + esi]
add ecx, 8
lea eax, [eax + 0x20]
movaps xmm1, xmmword [0x10226780]
movaps xmm0, xmm4
movups xmm3, xmmword [eax - 0x20]
psrld xmm0, xmm2
movaps xmm2, xmm3
psubd xmm1, xmm0
movaps xmm0, xmm5
pand xmm0, xmm3
pmulld xmm0, xmm1
psrld xmm2, xmm6
psrld xmm0, xmm6
pand xmm2, xmm5
pand xmm0, xmm5
pmulld xmm2, xmm1
movaps xmm1, xmmword [0x10226780]
pand xmm2, xmm7
por xmm2, xmm0
paddd xmm2, xmm4
movups xmmword [eax - 0x20], xmm2
movups xmm2, xmmword [eax + ebx - 0x20]
movups xmm3, xmmword [eax - 0x10]
movaps xmm0, xmm2
psrld xmm0, xmmword [esp + 0x40]
psubd xmm1, xmm0
movaps xmm0, xmm5
pand xmm0, xmm3
psrld xmm3, xmm6
pmulld xmm0, xmm1
pand xmm3, xmm5
psrld xmm0, xmm6
pmulld xmm3, xmm1
pand xmm0, xmm5
pand xmm3, xmm7
por xmm0, xmm3
paddd xmm0, xmm2
movaps xmm2, xmmword [esp + 0x40]
movups xmmword [eax - 0x10], xmm0
cmp ecx, edx
jl 0x10102ea0
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
cmp ecx, esi
jge 0x10103251
lea eax, [ebx + ecx*4]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x78]
sub eax, ebx
mov ebx, dword [esp + 0x14]
sub esi, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
nop word [eax + eax]
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 + 0x20]
and edx, 0xff00ff
xor edx, esi
add edx, edi
sub dword [esp + 0x1c], 1
mov dword [ebx - 4], edx
jne 0x10102f80
jmp 0x10103245
test esi, esi
jle 0x10103251
cmp esi, 8
jb 0x10103191
cmp dword [esp + 0x34], 2
jl 0x10103191
lea eax, [esp + esi*4 + 0x74]
xor ecx, ecx
lea edx, [esi - 1]
lea edx, [ebx + edx*4]
cmp ebx, eax
ja 0x10103013
lea eax, [esp + 0x78]
cmp edx, eax
jae 0x10103191
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x10103021
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm6, xmmword [0x102268b0]
lea edi, [esp + 0x78]
movups xmm5, xmmword [esp + 0x60]
mov edx, esi
sub edi, ebx
sub edx, eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x24]
lea esi, [esp + 0x88]
mov eax, 0x18
sub esi, ebx
movaps xmm0, xmm6
mov dword [esp + 0x14], esi
pandn xmm0, xmmword [0x10226b80]
mov esi, dword [esp + 0x20]
movd xmm4, eax
mov eax, 8
movups xmmword [esp + 0x50], xmm4
movups xmmword [esp + 0x40], xmm0
movd xmm7, eax
mov eax, ebx
mov ebx, dword [esp + 0x14]
nop dword [eax]
movups xmm3, xmmword [eax + esi]
add ecx, 8
lea eax, [eax + 0x20]
movaps xmm1, xmmword [0x10226780]
movaps xmm0, xmm3
psrld xmm0, xmm4
movups xmm2, xmmword [eax - 0x20]
psubd xmm1, xmm0
movaps xmm0, xmm6
pand xmm0, xmm2
movaps xmm4, xmm2
psrld xmm4, xmm7
pmulld xmm0, xmm1
pand xmm4, xmm6
pmulld xmm4, xmm1
pand xmm4, xmmword [esp + 0x40]
movaps xmm1, xmmword [0x10226780]
movups xmm2, xmmword [eax + ebx - 0x20]
psrld xmm0, xmm7
pand xmm0, xmm6
por xmm4, xmm0
movaps xmm0, xmm6
paddd xmm4, xmm3
pand xmm0, xmm4
psrld xmm4, xmm7
pmulld xmm0, xmm5
pand xmm4, xmm6
pmulld xmm4, xmm5
pand xmm4, xmmword [esp + 0x40]
psrld xmm0, xmm7
pand xmm0, xmm6
por xmm0, xmm4
movaps xmm4, xmm6
movups xmmword [eax - 0x20], xmm0
movaps xmm0, xmm2
psrld xmm0, xmmword [esp + 0x50]
movups xmm3, xmmword [eax - 0x10]
psubd xmm1, xmm0
movaps xmm0, xmm6
pand xmm4, xmm3
pmulld xmm4, xmm1
psrld xmm4, xmm7
psrld xmm3, xmm7
pand xmm4, xmm6
pand xmm3, xmm6
pmulld xmm3, xmm1
pand xmm3, xmmword [esp + 0x40]
por xmm4, xmm3
paddd xmm4, xmm2
pand xmm0, xmm4
psrld xmm4, xmm7
pmulld xmm0, xmm5
pand xmm4, xmm6
psrld xmm0, xmm7
pmulld xmm4, xmm5
pand xmm4, xmmword [esp + 0x40]
pand xmm0, xmm6
por xmm0, xmm4
movups xmm4, xmmword [esp + 0x50]
movups xmmword [eax - 0x10], xmm0
cmp ecx, edx
jl 0x10103080
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
cmp ecx, esi
jge 0x10103251
lea edi, [esp + 0x78]
sub edi, ebx
lea eax, [ebx + ecx*4]
mov ebx, dword [esp + 0x24]
sub esi, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], esi
mov esi, dword [edi + eax]
mov ecx, 0x100
mov edx, dword [eax]
mov eax, esi
shr eax, 0x18
mov edi, edx
sub ecx, eax
and edi, 0xff00ff
imul edi, ecx
mov eax, edx
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 + 0x1c]
and ecx, 0xff00ff
xor ecx, edi
mov edi, dword [esp + 0x20]
mov dword [eax], ecx
add eax, 4
sub dword [esp + 0x14], 1
mov dword [esp + 0x1c], eax
jne 0x101031b4
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
lea ebx, [ebx + esi*4]
mov ecx, dword [esp + 0x18]
sub eax, esi
mov edx, dword [esp + 0x3c]
add ecx, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], eax
test eax, eax
jg 0x10102dc2
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.101b3122
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x2c], eax
mov esi, eax
cmp eax, 0x40
mov eax, 0x40
cmovg esi, eax
mov eax, dword [edx]
push esi
push ebx
push dword [ebp + 0xc]
mov dword [esp + 0x20], esi
push ecx
mov ecx, edx
call dword [eax + 0xc]
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x78]
push esi
push edx
push dword [ebp + 0xc]
mov eax, dword [ecx]
push dword [esp + 0x24]
call dword [eax + 0xc]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x78]
push 0
push esi
push edx
mov eax, dword [ecx]
push ebx
call dword [eax + 0x10]
cmp edi, 0x100
je 0x101033f3
xor eax, eax
test esi, esi
jle 0x101033f3
cmp esi, 8
jb 0x101033ae
cmp dword [0x10266c2c], 2
jl 0x101033ae
mov ecx, esi
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x10103317
dec ecx
or ecx, 0xfffffff8
inc ecx
movaps xmm3, xmmword [0x102268b0]
mov edx, esi
movups xmm5, xmmword [esp + 0x60]
sub edx, ecx
mov ecx, 8
movaps xmm6, xmm3
pandn xmm6, xmmword [0x10226b80]
movd xmm4, ecx
nop dword [eax + eax]
movups xmm1, xmmword [ebx + eax*4]
movaps xmm0, xmm3
pand xmm0, xmm1
movaps 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
movaps xmm0, xmm3
movups xmmword [ebx + eax*4], xmm2
movups xmm1, xmmword [ebx + eax*4 + 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
movups xmmword [ebx + eax*4 + 0x10], xmm0
add eax, 8
cmp eax, edx
jl 0x10103340
cmp eax, esi
jge 0x101033f3
mov edx, dword [ebx + eax*4]
mov esi, edx
and esi, 0xff00ff
mov ecx, edx
imul esi, edi
shr ecx, 8
and ecx, 0xffff00ff
shr edx, 8
imul ecx, edi
and edx, 0xff00ff
imul edx, edi
shr esi, 8
xor esi, ecx
and esi, 0xff00ff
xor esi, edx
mov dword [ebx + eax*4], esi
inc eax
mov esi, dword [esp + 0x14]
cmp eax, esi
jl 0x101033b2
mov eax, dword [esp + 0x2c]
lea ebx, [ebx + esi*4]
mov ecx, dword [esp + 0x18]
sub eax, esi
mov edx, dword [esp + 0x3c]
add ecx, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], eax
test eax, eax
jg 0x10103296
mov ecx, dword [esp + 0x17c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.101b3122
mov esp, ebp
pop ebp
ret 0x10