Function at 0x1001ec70
Capabilities:
Encode data using xor

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
push esi
call fcn.1001d690
add esp, 4
test eax, eax
jne 0x1001ec89
or eax, 0xffffffff
pop esi
pop ecx
ret
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, ecx
imul edx, edx, 0x79340000
push ebx
push ebp
push edi
mov edi, eax
imul edi, edi, 0x45360000
sub edi, edx
mov edx, dword [esi + 0x10]
lea edx, [edi + edx - 0x6f1b37f]
mov edi, dword [esi + 0x18]
imul edx, eax
imul edi, ecx
sub edi, 1
or edi, 0xbc42827d
sub edx, edi
mov edi, ecx
imul edi, edi, 0x37160000
sub edi, 0xa37acb7
imul edi, ecx
add edx, edi
mov edi, dword [esi + 0x1c]
imul edi, ecx
imul ecx, ecx, 0x17edce76
xor edi, 0xa1debec1
add edx, edi
add edx, dword [esi + 0x20]
mov edi, dword [esi + 0x14]
lea edx, [edx + edi + 0x16c9b26]
mov edi, eax
imul eax, eax, 0x904f6fc6
xor eax, dword [esi + 0x24]
imul edi, edi, 0x209edf8c
or ebx, 0xffffffff
sub ebx, edi
mov edi, dword [esi + 0x28]
sub edi, 1
or ebx, edi
mov edi, edx
imul edi, edi, 0x3e5c898c
sub eax, ebx
sub edi, 1
or edi, 0x95a072bd
sub eax, edi
mov edi, edx
imul edi, edx
imul edx, edx, 0xe0d1bb3a
imul edi, edi, 0x443c0000
sub eax, edi
xor edx, 0x352fc6a1
add eax, edx
mov edx, dword [esp + 0x1c]
lea eax, [eax + ecx + 0x61a962cd]
mov ecx, eax
shr ecx, 0x18
mov byte [edx], cl
mov ecx, eax
shr ecx, 0x10
mov byte [edx + 1], cl
mov ecx, eax
shr ecx, 8
mov byte [edx + 2], cl
mov byte [edx + 3], al
mov eax, dword [esi + 0x2c]
mov ecx, eax
and ecx, 0xe100d419
lea ecx, [ecx + ecx + 0x17a456f8]
xor eax, 0x1eff2be6
sub eax, ecx
mov ecx, eax
imul eax, eax, 0x2e9e2ef7
imul ecx, ecx, 0x3a212
sub ecx, 1
or ecx, 0xfff8bd77
xor eax, 0x3a144
sub eax, ecx
add eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
lea ecx, [eax + ecx - 0x6261c7e6]
mov eax, ecx
imul eax, eax, 0x4dd20000
add eax, 0x784024af
imul eax, ecx
sub eax, 0x370c65af
mov ecx, eax
shr ecx, 0x18
mov byte [edx + 4], cl
mov ecx, eax
shr ecx, 0x10
mov byte [edx + 5], cl
mov ecx, eax
shr ecx, 8
mov byte [edx + 7], al
mov byte [edx + 6], cl
mov eax, dword [esi + 0x38]
mov edi, eax
or edi, 0xc54bb697
or eax, 0x3ab44968
mov ecx, 1
add edi, eax
xor eax, eax
mov dword [esp + 0x10], ecx
lea esp, [esp]
mov ebx, eax
imul ebx, eax
imul ebx, ebx, 0x1f105
mov ebp, 0xfffffc83
sub ebp, ebx
mov ebx, eax
imul ebx, ebx, 0x1c65
or ebp, ebx
imul ebp, ebp, 0x12a2
mov ebx, eax
imul ebx, ebx, 0x2110e9c
sub ebp, ebx
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x10]
sub ebp, 0x33bece94
add ecx, 1
and ebp, ebx
xor eax, ebp
cmp ecx, 0x1f
mov dword [esp + 0x10], ecx
jle 0x1001ee00
imul eax, eax, 0x4e410fd4
imul edi, edi, 0xe097f64
sub edi, eax
mov eax, dword [esi + 0x3c]
lea eax, [edi + eax - 0x4c673cb4]
mov ecx, eax
shr ecx, 0x18
mov byte [edx + 8], cl
mov ecx, eax
shr ecx, 0x10
mov byte [edx + 9], cl
mov ecx, eax
shr ecx, 8
mov byte [edx + 0xa], cl
mov byte [edx + 0xb], al
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
xor ecx, 0x2341cc67
sub eax, 1
imul ecx, ecx, 0xe5da8428
or eax, 0xe5f19cc7
imul eax, eax, 0x3976a10a
sub ecx, eax
mov eax, dword [esi + 0x48]
lea eax, [ecx + eax + 0x242652de]
mov ecx, eax
shr ecx, 0x18
mov byte [edx + 0xc], cl
mov ecx, eax
shr ecx, 0x10
pop edi
mov byte [edx + 0xd], cl
mov ecx, eax
pop ebp
shr ecx, 8
pop ebx
mov byte [edx + 0xf], al
mov byte [edx + 0xe], cl
xor eax, eax
pop esi
pop ecx
ret