Function at 0x100010e6
Capabilities:
Encode data using xor

Disassembly:
jmp 0x10002c00
sub esp, 0x28
mov ecx, dword [esp + 0x40]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov dword [esp + 0x14], eax
jbe 0x10002f80
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
sub eax, ecx
mov ecx, dword [esp + 0x30]
push ebx
push ebp
push esi
lea esi, [eax + ecx]
push edi
mov dword [esp + 0x14], esi
lea edx, [esi + 2]
mov dword [esp + 0x20], edx
mov eax, dword [0x1007401c]
mov ecx, dword [0x10074020]
mov edx, esi
mov esi, dword [0x10074014]
imul edx, esi
imul eax, ecx
mov dword [esp + 0x28], edx
mov edx, eax
imul eax, ecx
imul edx, esi
imul eax, esi
mov dword [esp + 0x30], edx
mov edx, dword [0x10074024]
lea eax, [eax + eax*2]
mov ebp, 3
sub ebp, eax
mov eax, dword [esp + 0x20]
mov edi, edx
imul ebp, ecx
imul edi, edx
imul eax, esi
mov dword [esp + 0x2c], edi
mov edi, dword [0x10074010]
add ebp, eax
mov eax, 2
sub eax, edi
imul ebp, ecx
imul eax, edx
mov edx, 2
mov dword [esp + 0x20], eax
sub edx, esi
mov ebx, edi
imul edx, dword [0x10074018]
imul ebx, esi
add eax, edx
mov edx, dword [esp + 0x1c]
sub eax, esi
add edx, ebp
mov ebp, 0x16b7
mov dword [esp + 0x34], ebx
lea eax, [eax + eax*2]
mov ebx, ecx
imul ebx, ecx
lea eax, [eax + edx + 1]
cdq
idiv ebp
mov ebp, dword [esp + 0x30]
lea eax, [ecx + ecx]
sub ebx, eax
mov eax, dword [esp + 0x2c]
sub ebx, eax
mov eax, dword [0x10074024]
sub ebx, ebp
mov ebp, dword [esp + 0x34]
sub ebx, eax
mov eax, dword [esp + 0x28]
add ebx, ebp
mov ebp, dword [0x10074018]
add ebx, ebp
lea eax, [eax + ebx*2]
add ebx, eax
mov eax, ecx
add ebx, edx
lea edx, [ebx + esi*8]
lea ebx, [edi + 1]
imul ebx, dword [0x1007401c]
sub eax, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
lea ebx, [ebx + ecx*2]
lea eax, [eax + eax*2]
lea ebx, [ecx + ebx + 8]
imul ebx, esi
sub eax, ebx
mov ebx, dword [esp + 0x48]
add eax, edx
xor edx, edx
mov dl, byte [eax + ebx]
mov ebx, dword [esp + 0x18]
mov eax, edx
add eax, ebx
cdq
mov ebx, 0x16b7
idiv ebx
mov eax, 2
sub eax, ecx
sub eax, esi
sub eax, ebp
lea eax, [eax + eax*2]
mov ebx, edx
mov edx, eax
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x20], eax
imul eax, edi
sub edx, eax
imul edx, dword [0x10074024]
add ebx, edx
mov edx, 1
sub edx, ebp
imul edx, esi
lea eax, [edx + edi*2]
mov edx, dword [0x1007401c]
sub eax, edx
sub eax, ebp
lea eax, [eax + eax*2]
add ebx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x1c]
lea eax, [eax + ebp - 1]
imul eax, ebp
sub eax, edx
add eax, ebx
mov ebx, dword [esp + 0x48]
mov al, byte [eax + ebx]
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x13], al
mov eax, dword [0x10074024]
imul ebx, eax
sub ebx, edx
mov edx, dword [esp + 0x18]
add ebx, esi
add ebx, edx
mov edx, ecx
sub edx, edi
imul edx, edi
sub edx, ecx
sub edx, ebp
lea edx, [edx + esi - 2]
imul edx, eax
lea eax, [ebp + ebp]
mov ebp, dword [0x1007401c]
sub eax, ebp
add eax, esi
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x14]
mov esi, eax
add eax, 4
imul esi, ecx
shl edx, 2
sub edx, esi
sub edx, edi
sub edx, edi
sub edx, edi
sub edx, edi
sub edx, ecx
sub edx, ecx
sub edx, ecx
mov ecx, dword [esp + 0x1c]
add edx, ecx
mov ecx, dword [esp + 0x48]
mov bl, byte [ebx + ecx]
mov byte [edx + ecx], bl
mov edx, eax
imul edx, dword [0x10074024]
add edx, 5
mov eax, dword [0x10074010]
imul edx, dword [0x10074014]
add edx, 5
lea eax, [eax + eax*4]
imul edx, dword [0x10074018]
mov esi, dword [esp + 0x18]
mov ebp, 3
add esi, edx
mov dl, byte [esp + 0x13]
add eax, esi
mov byte [eax + ecx], dl
mov edx, dword [0x10074010]
mov ecx, dword [0x10074018]
mov edi, dword [0x1007401c]
mov eax, edx
mov ebx, edi
imul eax, ecx
imul ebx, edi
mov esi, dword [0x10074020]
mov dword [esp + 0x28], eax
mov eax, esi
sub eax, ebx
inc eax
lea eax, [eax + eax*2]
mov ebx, eax
mov eax, dword [esp + 0x20]
imul eax, edx
imul eax, ecx
sub ebx, eax
lea eax, [edx + edx*2]
sub ebp, eax
imul ebx, edi
imul ebp, dword [0x10074014]
mov edi, dword [0x10074024]
sub ebp, 3
imul ebp, edi
mov eax, dword [esp + 0x24]
add ebp, eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffffe
add ebp, ebx
imul eax, esi
sub eax, dword [0x10074014]
mov ebx, dword [esp + 0x4c]
sub eax, ecx
lea eax, [eax + eax*2]
add eax, ebp
mov ebp, dword [esp + 0x18]
add eax, ebx
mov ebx, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
imul eax, ecx
sub ebx, eax
xor eax, eax
sub ebx, edi
sub ebx, edi
sub ebx, edi
sub ebx, edi
sub ebx, esi
sub ebx, esi
add ebx, edx
add ebx, ecx
add ebx, ecx
add ebx, ecx
add ebx, ebp
mov ebp, dword [esp + 0x48]
mov al, byte [ebx + ebp]
lea ebx, [esi + 2]
imul ebx, ecx
sub ebx, esi
mov esi, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x28]
add edx, edx
sub edx, esi
mov esi, dword [esp + 0x3c]
add edx, esi
mov esi, dword [esp + 0x40]
shl ebx, 1
lea edx, [edx + esi + 7]
imul edx, edi
sub ebx, edx
mov edx, dword [esp + 0x1c]
add ebx, edx
xor edx, edx
mov dl, byte [ebx + ebp]
mov esi, 0x16b7
add eax, edx
cdq
idiv esi
mov esi, dword [0x1007401c]
sub ecx, esi
mov esi, dword [esp + 0x14]
lea eax, [esi + 1]
imul ecx, eax
mov eax, dword [esp + 0x34]
mov bl, byte [eax]
add ebp, edx
mov cl, byte [ecx + ebp]
xor bl, cl
mov ecx, dword [esp + 0x50]
mov byte [eax], bl
mov eax, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jb 0x10002c3d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret