Function at 0x100016d5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, ecx
push ebx
mov ebx, dword [ebp + 0x1c]
imul eax, ebx
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 4], ecx
sub ebx, dword [ebp - 4]
add eax, esi
imul eax, dword [ebp + 0x24]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
mov edx, eax
imul edx, dword [ebp + 0xc]
mov ecx, edx
or ecx, dword [ebp + 0x20]
push edi
mov edi, dword [ebp + 0x24]
mov dword [ebp - 0x20], ecx
mov ecx, ebx
or ecx, esi
xor ecx, dword [ebp + 0x18]
and edx, dword [ebp + 0x20]
xor ecx, edi
mov dword [ebp - 0x1c], ecx
mov ecx, ebx
xor ecx, esi
xor ecx, edi
or ecx, dword [ebp + 0x18]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], ecx
mov ecx, eax
or ecx, dword [ebp + 0x18]
lea edx, [esi + edi]
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x28], 0x1648
add ecx, dword [ebp + 0x20]
mov dword [ebp - 0x10], ecx
mov ecx, ebx
sub ecx, dword [ebp + 0x20]
imul ecx, esi
xor ecx, edi
mov dword [ebp - 0xc], ecx
mov edi, edx
imul edi, dword [ebp + 0x18]
mov ecx, eax
sub ecx, edi
xor ecx, dword [ebp + 0xc]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp + 0x20]
xor ecx, dword [ebp + 0x1c]
mov dword [ebp + 8], ecx
mov ecx, eax
and ecx, dword [ebp + 0xc]
and ecx, dword [ebp + 0x18]
mov dword [ebp + 0x14], ecx
mov ecx, dword [ebp + 0x1c]
add ecx, esi
or ecx, dword [ebp + 0x24]
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x2c], ecx
jle 0x100018b3
and edx, dword [ebp + 0x18]
imul ebx, esi
mov ecx, eax
xor ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x18]
or ecx, dword [ebp + 0xc]
or edi, dword [ebp + 0x24]
or ecx, dword [ebp + 0x20]
xor edx, eax
imul edx, dword [ebp + 0xc]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp + 0x24]
sub ecx, ebx
mov ebx, dword [ebp - 4]
xor ebx, dword [ebp + 0x20]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x30], ebx
imul ebx, ecx
xor edi, eax
and edi, dword [ebp + 0xc]
or ebx, esi
imul edi, dword [ebp + 0x20]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x30]
or edx, ecx
add ecx, dword [ebp - 4]
mov dword [ebp - 0x40], ebx
mov ebx, esi
imul esi, dword [ebp + 0x24]
and ebx, dword [ebp + 0x24]
mov dword [ebp - 0x48], edx
mov edx, dword [ebp + 0x20]
add ecx, edx
mov dword [ebp - 0x30], ebx
add ebx, eax
add ebx, dword [ebp + 0x18]
mov dword [ebp + 0x20], ecx
imul ebx, dword [ebp + 0xc]
mov ecx, eax
xor eax, dword [ebp + 0xc]
sub ecx, esi
mov esi, dword [ebp + 0x10]
sub ecx, dword [ebp + 0x18]
add eax, edx
xor eax, dword [ebp - 4]
and eax, dword [ebp + 0x1c]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x30]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0x34]
sub eax, esi
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0x24]
imul eax, dword [ebp - 4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x3c]
xor dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x40]
and dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x44]
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x48]
sub dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x20]
and dword [ebp - 8], eax
mov eax, ecx
imul eax, dword [ebp + 8]
imul eax, dword [ebp + 0xc]
sub dword [ebp - 0xc], ebx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x24]
sub dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x2c]
or eax, dword [ebp + 0x1c]
or dword [ebp - 0x1c], edi
mov dword [ebp - 0x2c], eax
add eax, dword [ebp + 0x14]
add eax, dword [ebp + 8]
add eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x24]
add dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + esi]
add eax, dword [ebp - 0x28]
mov dword [esi], eax
add esi, 4
dec dword [ebp + 0x18]
jne 0x1000182d
pop edi
pop esi
pop ebx
leave
ret 0x20