Function at 0x10013250
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 0x28]
sub esp, 8
add ecx, 0xffffbf25
push esi
mov esi, dword [esp + 0x10]
add esi, 0xffffbc4b
lea eax, [esi + 0x3c04]
cmp ecx, eax
jge 0x10013534
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x12c], 0
je 0x10013500
mov ecx, dword [eax + 4]
push ebx
push ebp
push edi
xor dword [ecx + 0x24], 0xe8462d7
mov edi, dword [eax + 0x174]
mov ebp, dword [eax + 0x6c]
add ebp, 0x78
imul edx, dword [edi + 0x94], 0x67c520e8
add ebp, edx
mov edx, dword [eax + 0xc]
xor edx, 0x7438
mov dword [esp + 0x14], ebp
cmp edx, 0x3708
jbe 0x100132ed
mov esi, dword [eax + 0x114]
mov ecx, dword [eax + 0x1a4]
or esi, 0x3712
add edx, 0xffffc8f8
nop dword [eax]
sub ecx, esi
sub edx, 1
jne 0x100132e0
mov dword [eax + 0x1a4], ecx
mov ebx, dword [edi + 0xc]
mov esi, dword [eax + 0x44]
xor ebx, 0x4331
add esi, dword [ebp]
mov dword [esp + 0x10], esi
cmp ebx, dword [ebp + 4]
jae 0x10013494
nop dword [eax]
mov ecx, dword [eax + 0x174]
lea edi, [esi + ebx]
xor ebp, ebp
mov dword [esp + 0x24], edi
imul ecx, dword [ecx + 0x94], 0x47f439c8
add ebx, ecx
mov ecx, dword [eax + 0x40]
or ecx, 0x3712
imul ecx, dword [eax + 0x98]
mov dword [eax + 0x98], ecx
mov ecx, dword [eax + 8]
mov edx, dword [edi + 4]
mov ecx, dword [ecx + 0xc]
or dword [eax + 0x1e8], 0x79c2
xor ecx, 0x4339
sub edx, ecx
lea ecx, [esi + ebx]
shr edx, 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], ecx
test edx, edx
je 0x10013480
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0xc]
mov ecx, edx
imul esi, edx, 0x1752498e
xor ecx, 0x4333
add ebx, ecx
mov dword [esp + 0x40], ebx
cmp esi, 0x3e30
jg 0x100133b1
mov edx, dword [eax + 0xe4]
mov ecx, 0x3e31
sub ecx, esi
sub edx, 0x81b0
sub ecx, 1
jne 0x100133a0
mov dword [eax + 0xe4], edx
mov ecx, dword [esp + 0x1c]
mov esi, 0x3c85
movzx ebx, word [ecx + ebp*2]
and ebx, 0xfff
add ebx, dword [edi]
mov edi, dword [eax + 4]
mov ecx, dword [edi + 0xa0]
xor ecx, 0x4ff
cmp ecx, esi
jb 0x10013401
mov edx, dword [eax + 0x1a4]
nop
mov ecx, edx
inc esi
or ecx, 0x3e1a
add edx, ecx
mov dword [eax + 0x1a4], edx
mov ecx, dword [edi + 0xa0]
xor ecx, 0x4ff
cmp esi, ecx
jbe 0x100133e0
mov ecx, dword [esp + 0x1c]
movzx ecx, word [ecx + ebp*2]
shr ecx, 0xc
dec ecx
cmp ecx, 9
ja case.0x10013419.4
movzx ecx, byte [ecx + 0x10013594]
jmp dword [ecx*4 + 0x10013584]
cmp dword [eax + 0x1f8], 0x3d52
ja 0x1001343f
movzx ecx, byte [0x10039edc]
sub ecx, 0x34ee
mov dword [eax + 0x190], ecx
mov ecx, dword [eax + 0x60]
or ecx, 0x3c85
or dword [eax + 0x7c], ecx
mov ecx, dword [eax + 0x12c]
jmp 0x10013463
movzx ecx, word [eax + 0x12e]
jmp 0x10013463
movzx ecx, word [eax + 0x12c]
mov edx, dword [eax + 0x44]
add dword [edx + ebx], ecx
mov ebx, dword [esp + 0x40]
inc ebp
mov edi, dword [esp + 0x24]
cmp ebp, dword [esp + 0x34]
jb 0x10013371
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x48], 0x3712
cmp ebx, dword [ecx + 4]
jb 0x10013310
mov edi, dword [eax + 4]
mov ecx, dword [edi + 0xa0]
xor ecx, 0x78a2
cmp ecx, 0x3e2e
ja 0x100134b5
mov ecx, dword [eax + 0x40]
mov dword [eax + 0x38], ecx
dec ecx
mov dword [eax + 0x40], ecx
mov esi, dword [eax + 8]
mov ecx, 0x3af2
cmp dword [esi + 0x184], ecx
jbe 0x100134df
mov edx, dword [eax + 0x20]
xor edx, 0x34ee
nop
inc ecx
mov dword [eax + 0x1ec], edx
cmp ecx, dword [esi + 0x184]
jb 0x100134d0
mov ecx, dword [edi + 0x184]
pop edi
xor ecx, 0x676
pop ebp
pop ebx
cmp ecx, 0x3879
jb 0x10013500
mov ecx, 0xffffff60
sub ecx, eax
add dword [eax + 0x70], ecx
mov ecx, dword [eax + 0x28]
mov ecx, dword [ecx + 0x184]
xor ecx, 0xd5
cmp ecx, 0x3e56
jbe 0x10013574
mov ecx, dword [eax + 0x190]
or ecx, 0x3c04
or dword [eax + 0x40], ecx
mov eax, dword [esp + 0x14]
add eax, 0x6e5
pop esi
add esp, 8
ret
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x1ec]
and eax, dword [edx + 0x134]
or eax, 0x3708
cmp dword [edx + 0x148], eax
je 0x10013574
mov eax, dword [esp + 0x18]
add eax, 0xffffc267
add eax, dword [esp + 0x28]
xor dword [edx + 0x60], eax
mov eax, dword [edx + 0xf4]
and eax, esi
add eax, 0x3e1a
or dword [edx + 0xa0], eax
mov eax, dword [esp + 0x14]
add eax, 0x6e5
pop esi
add esp, 8
ret