Function at 0x1000ec62
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
mov eax, dword [0x10206f54]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov dword [ebp - 0x50], esi
mov ebx, 1
mov dword [ebp - 0x74], edi
cmp dword [edi + 0xc], 0
je 0x1000e91e
mov ebx, dword [edi + 0x6c]
mov al, byte [edi + 0x808c]
xor edx, edx
mov byte [ebp - 0x45], al
mov al, byte [edi + 0x808d]
mov byte [ebp - 0x65], al
mov eax, dword [edi + 0x85b8]
mov dword [ebp - 0x60], ebx
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x70], ecx
mov ecx, dword [edi + 0x8614]
shl ecx, 6
add eax, ecx
mov dword [ebp - 0x6c], eax
test ebx, ebx
je 0x1000e976
lea esi, [edi + 0x86dc]
nop dword [eax]
mov eax, dword [esi]
lea esi, [esi + 4]
mov ecx, edx
inc edx
and ecx, 0xf
mov dword [ebp + ecx*4 - 0x44], eax
cmp edx, ebx
jb 0x1000e960
mov esi, dword [ebp - 0x50]
cmp dword [edi + 0x85c0], 0
je 0x1000e991
mov eax, dword [edi + 0x87dc]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x87e0]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x10]
dec eax
cmp eax, 6
ja case.default.0x1000e99e
jmp dword [eax*4 + 0x1000f06c]
cmp esi, dword [ebp + 0x10]
jae case.default.0x1000e99e
mov eax, dword [ebp + 0xc]
mov edi, esi
mov esi, dword [ebp + 8]
shl edi, 4
add edi, 0x101f08e0
mov dword [ebp - 0x58], 0xff
mov dword [ebp - 0x54], edi
nop dword [eax]
mov edx, dword [ebp - 0x50]
mov ecx, esi
mov ebx, dword [ebp - 0x6c]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebx + edx*4 - 0x40]
mov dword [ebp - 0x5c], edx
cmp esi, eax
jae 0x1000ea57
mov ebx, dword [ebp - 0x70]
mov esi, dword [ebx + ecx*4]
mov ebx, dword [ebp - 0x74]
add esi, dword [ebx + 0x80a8]
mov ebx, dword [ebp - 0x60]
add esi, edx
xor edx, edx
test ebx, ebx
je 0x1000ea49
mov eax, ecx
and eax, 0xf
movzx edi, byte [eax + edi]
mov eax, ecx
mov ecx, dword [ebp + 0x14]
and eax, 0xfffffff0
shl eax, 4
add edi, eax
mov eax, edx
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x44]
mov eax, dword [eax + edi*4]
add eax, dword [ebp + 0x18]
sar eax, cl
test eax, eax
jns 0x1000ea2f
xor eax, eax
jmp 0x1000ea38
cmp eax, 0xff
cmovg eax, dword [ebp - 0x58]
mov byte [esi + edx], al
inc edx
cmp edx, ebx
jb 0x1000ea16
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x54]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x5c]
inc ecx
mov dword [ebp - 0x4c], ecx
cmp ecx, eax
jb 0x1000e9e6
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x50]
add edi, 0x10
inc ecx
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], ecx
cmp ecx, dword [ebp + 0x10]
jb 0x1000e9d0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a8b60
mov esp, ebp
pop ebp
ret
cmp esi, dword [ebp + 0x10]
jae case.default.0x1000e99e
movzx eax, byte [ebp - 0x45]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
shl esi, 4
add esi, 0x101f08e0
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], esi
mov ebx, dword [ebp - 0x6c]
mov edi, ecx
mov dword [ebp - 0x54], ecx
mov edx, dword [ebx + edx*4 - 0x40]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x64], edx
cmp ecx, eax
jae 0x1000eb41
nop dword [eax]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0x74]
add ecx, edx
xor edx, edx
mov eax, dword [eax + 0x80a8]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x58], eax
test ebx, ebx
je 0x1000eb30
mov eax, edi
and eax, 0xf
movzx esi, byte [eax + esi]
mov eax, edi
mov edi, dword [ebp - 0x58]
and eax, 0xfffffff0
shl eax, 4
add esi, eax
mov ecx, dword [ebp + 0x14]
mov eax, edx
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x44]
mov eax, dword [eax + esi*4]
add eax, dword [ebp + 0x18]
sar eax, cl
mov ecx, dword [ebp - 0x5c]
shl eax, cl
test eax, eax
jns 0x1000eb14
xor eax, eax
jmp 0x1000eb21
cmp eax, 0xffff
mov ecx, 0xffff
cmovg eax, ecx
mov word [edi + edx*2], ax
inc edx
cmp edx, ebx
jb 0x1000eaf3
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp + 0xc]
inc edi
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x54], edi
cmp edi, eax
jb 0x1000eac0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
add esi, 0x10
inc edx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], edx
cmp edx, dword [ebp + 0x10]
jb 0x1000eaa3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a8b60
mov esp, ebp
pop ebp
ret
cmp esi, dword [ebp + 0x10]
jae case.default.0x1000e99e
movzx eax, byte [ebp - 0x45]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
shl esi, 4
add esi, 0x101f08e0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], esi
nop dword [eax]
mov ebx, dword [ebp - 0x6c]
mov edi, ecx
mov dword [ebp - 0x54], ecx
mov edx, dword [ebx + edx*4 - 0x40]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x5c], edx
cmp ecx, eax
jae 0x1000ec3b
nop word [eax + eax]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0x74]
add ecx, edx
xor edx, edx
mov eax, dword [eax + 0x80a8]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x64], eax
test ebx, ebx
je 0x1000ec26
mov eax, edi
and eax, 0xf
movzx esi, byte [eax + esi]
mov eax, edi
mov edi, dword [ebp - 0x64]
and eax, 0xfffffff0
shl eax, 4
add esi, eax
mov ecx, dword [ebp + 0x14]
mov eax, edx
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x44]
mov eax, dword [eax + esi*4]
add eax, dword [ebp + 0x18]
sar eax, cl
mov ecx, dword [ebp - 0x58]
shl eax, cl
cmp eax, 0xffff8000
jge 0x1000ec0a
mov eax, 0xffff8000
jmp 0x1000ec17
cmp eax, 0x7fff
mov ecx, 0x7fff
cmovg eax, ecx
mov word [edi + edx*2], ax
inc edx
cmp edx, ebx
jb 0x1000ebe3
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp + 0xc]
inc edi
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x54], edi
cmp edi, eax
jb 0x1000ebb0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
add esi, 0x10
inc edx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], edx
cmp edx, dword [ebp + 0x10]
jb 0x1000eb90
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a8b60
mov esp, ebp
pop ebp
ret
cmp esi, dword [ebp + 0x10]
jae case.default.0x1000e99e
mov eax, dword [ebp + 0xc]
mov edi, esi
mov ecx, dword [ebp + 8]
shl edi, 4
add edi, 0x101f08e0
mov dword [ebp - 0x4c], edi
nop
mov ebx, dword [ebp - 0x6c]
mov edx, ecx
mov dword [ebp - 0x54], ecx
mov esi, dword [ebx + esi*4 - 0x40]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x58], esi
cmp ecx, eax
jae 0x1000ed0f
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x74]
add ecx, esi
xor esi, esi
mov eax, dword [eax + 0x80a8]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x64], eax
test ebx, ebx
je 0x1000ecfe
mov eax, edx
and eax, 0xf
movzx edi, byte [eax + edi]
mov eax, edx
and eax, 0xfffffff0
shl eax, 4
add edi, eax
mov ecx, dword [ebp + 0x14]
mov eax, esi
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x44]
mov edx, dword [eax + edi*4]
add edx, dword [ebp + 0x18]
sar edx, cl
mov eax, edx
and edx, 0x7fff
sar eax, 0x1f
movzx eax, ax
xor edx, eax
sub edx, eax
mov eax, dword [ebp - 0x64]
mov word [eax + esi*2], dx
inc esi
cmp esi, ebx
jb 0x1000ecc6
mov edx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebp + 0xc]
inc edx
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], edx
cmp edx, eax
jb 0x1000ec96
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x50]
add edi, 0x10
inc esi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], esi
cmp esi, dword [ebp + 0x10]
jb 0x1000ec80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a8b60
mov esp, ebp
pop ebp
ret
cmp esi, dword [ebp + 0x10]
jae case.default.0x1000e99e
movzx eax, byte [ebp - 0x45]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
shl esi, 4
add esi, 0x101f08e0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], esi
nop dword [eax + eax]
mov ebx, dword [ebp - 0x6c]
mov edi, ecx
mov dword [ebp - 0x54], ecx
mov edx, dword [ebx + edx*4 - 0x40]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x5c], edx
cmp ecx, eax
jae 0x1000ede8
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0x74]
add ecx, edx
xor edx, edx
mov eax, dword [eax + 0x80a8]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x64], eax
test ebx, ebx
je 0x1000edd7
mov eax, edi
and eax, 0xf
movzx esi, byte [eax + esi]
mov eax, edi
mov edi, dword [ebp - 0x64]
and eax, 0xfffffff0
shl eax, 4
add esi, eax
nop dword [eax]
mov ecx, dword [ebp + 0x14]
mov eax, edx
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x44]
mov eax, dword [eax + esi*4]
add eax, dword [ebp + 0x18]
sar eax, cl
mov ecx, dword [ebp - 0x58]
shl eax, cl
mov dword [edi + edx*4], eax
inc edx
cmp edx, ebx
jb 0x1000edb0
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp + 0xc]
inc edi
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x54], edi
cmp edi, eax
jb 0x1000ed76
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
add esi, 0x10
inc edx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], edx
cmp edx, dword [ebp + 0x10]
jb 0x1000ed60
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a8b60
mov esp, ebp
pop ebp
ret
cmp esi, dword [ebp + 0x10]
jae case.default.0x1000e99e
movzx eax, byte [ebp - 0x45]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
shl esi, 4
add esi, 0x101f08e0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], esi
mov ebx, dword [ebp - 0x6c]
mov edi, ecx
mov dword [ebp - 0x54], ecx
mov edx, dword [ebx + edx*4 - 0x40]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x5c], edx
cmp ecx, eax
jae 0x1000eebb
nop word [eax + eax]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0x74]
add ecx, edx
xor edx, edx
mov eax, dword [eax + 0x80a8]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x64], eax
test ebx, ebx
je 0x1000eeaa
mov eax, edi
and eax, 0xf
movzx esi, byte [eax + esi]
mov eax, edi
mov edi, dword [ebp - 0x64]
and eax, 0xfffffff0
shl eax, 4
add esi, eax
mov ecx, dword [ebp + 0x14]
mov eax, edx
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x44]
mov eax, dword [eax + esi*4]
add eax, dword [ebp + 0x18]
sar eax, cl
mov ecx, dword [ebp - 0x58]
shl eax, cl
mov dword [edi + edx*4], eax
inc edx
cmp edx, ebx
jb 0x1000ee83
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp + 0xc]
inc edi
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x54], edi
cmp edi, eax
jb 0x1000ee50
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
add esi, 0x10
inc edx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], edx
cmp edx, dword [ebp + 0x10]
jb 0x1000ee34
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a8b60
mov esp, ebp
pop ebp
ret
cmp esi, dword [ebp + 0x10]
jae case.default.0x1000e99e
movzx edi, byte [ebp - 0x45]
mov eax, 0x17
mov ecx, dword [ebp + 0xc]
sub eax, edi
mov dword [ebp - 0x78], eax
mov eax, esi
shl eax, 4
add eax, 0x101f08e0
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x4c], eax
nop dword [eax]
mov ebx, dword [ebp - 0x6c]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x58], edx
mov esi, dword [ebx + esi*4 - 0x40]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x88], esi
cmp edx, ecx
jae 0x1000f043
nop
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x74]
add ecx, esi
xor esi, esi
mov dword [ebp - 0x54], esi
mov eax, dword [eax + 0x80a8]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x80], eax
test ebx, ebx
je 0x1000f02b
mov ecx, edi
mov ebx, 1
shl ebx, cl
mov eax, edx
mov ecx, dword [ebp - 0x4c]
and eax, 0xf
movzx ecx, byte [eax + ecx]
mov eax, edx
and eax, 0xfffffff0
shl eax, 4
add ecx, eax
movsx eax, byte [ebp - 0x65]
shl ecx, 2
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x64], eax
and esi, 0xf
mov eax, dword [ebp + esi*4 - 0x44]
lea esi, [ebx - 1]
mov eax, dword [eax + ecx]
add eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
sar eax, cl
mov ecx, eax
sar ecx, 0x1f
mov edx, ecx
mov dword [ebp - 0x7c], ecx
xor edx, eax
sub edx, ecx
mov ecx, dword [ebp - 0x5c]
mov edi, edx
and esi, edx
shr edi, cl
or esi, ebx
test edi, edi
jne 0x1000efbc
xor esi, ebx
mov edi, 1
mov eax, 0x7f
sub eax, dword [ebp - 0x64]
add edi, eax
cmp esi, ebx
jge 0x1000efe0
nop word [eax + eax]
cmp edi, 1
jle 0x1000efe0
test esi, esi
jle 0x1000efe0
add esi, esi
dec edi
cmp esi, ebx
jl 0x1000efd0
mov ecx, dword [ebp - 0x78]
mov eax, esi
xor eax, ebx
mov edx, esi
cmp esi, ebx
cmovge edx, eax
xor eax, eax
shl edx, cl
cmp esi, ebx
mov esi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x84]
cmovge eax, edi
shl eax, 0x17
or edx, eax
mov eax, dword [ebp - 0x7c]
and eax, 0x80000000
or edx, eax
mov eax, dword [ebp - 0x80]
mov dword [eax + esi*4], edx
inc esi
mov dword [ebp - 0x54], esi
cmp esi, dword [ebp - 0x60]
jb 0x1000ef83
mov ebx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x5c]
mov ecx, dword [ebp + 0xc]
inc edx
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x58], edx
cmp edx, ecx
jb 0x1000ef30
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
add eax, 0x10
inc esi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], esi
cmp esi, dword [ebp + 0x10]
jb 0x1000ef10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101a8b60
mov esp, ebp
pop ebp
ret