Function at 0x1000ffa0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x50
movzx eax, word [0x453c09c0]
mov ecx, 1
mov dword [esp + 0x40], eax
neg eax
push 3
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
call fcn.1000f420
add esp, 4
cmp dword [0x453c0364], 0
je 0x1000ffee
push 0x452f8910
push 0x3ea
call fcn.100285e0
add esp, 8
push ebx
mov bx, word [0x45400ee6]
push ebp
mov ebp, dword [0x453c0ad0]
push esi
movzx eax, bx
push edi
mov edi, 3
sub eax, edi
cmp eax, edi
mov dword [esp + 0x10], edi
jle 0x10010220
movzx eax, word [0x453c09c0]
lea ebx, [eax - 3]
nop
mov esi, edi
and esi, 7
lea ecx, [esi*4 + 2]
mov edx, ebp
shr edx, cl
and edx, 1
add edx, 3
mov ecx, edx
and ecx, 1
lea ecx, [ecx + esi*2]
add ecx, ecx
mov esi, ebp
shr esi, cl
mov dword [esp + 0x18], edx
and esi, 3
cmp edx, ebx
mov dword [esp + 0x14], esi
jge 0x10010200
jmp 0x10010060
mov esi, dword [esp + 0x14]
lea ecx, [ecx]
imul eax, edi
add eax, edx
mov edx, dword [0x45400e88]
lea ecx, [edx + eax*8]
movzx edx, word [ecx + esi*2]
mov dword [esp + 0x1c], edx
mov eax, 1
xor edx, edx
lea ecx, [ecx]
lea esi, [eax*8]
movzx ebp, word [esi + ecx + 2]
mov edi, esi
neg edi
movzx ebx, word [edi + ecx + 2]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
add edi, ebp
movzx edi, word [ecx + edi*2]
add esi, ebp
movzx ebp, word [ecx + esi*2]
mov esi, dword [esp + 0x1c]
add esi, ebx
add esi, dword [esp + 0x20]
lea eax, [eax + eax*2]
add esi, esi
sub esi, edi
sub esi, ebp
mov dword [esp + edx + 0x3c], esi
mov esi, edi
sub esi, dword [esp + 0x1c]
add eax, eax
mov edi, esi
sar edi, 0x1f
mov dword [esp + 0x30], edi
mov edi, ebp
sub edi, dword [esp + 0x1c]
add eax, eax
mov dword [esp + 0x2c], edi
sar edi, 0x1f
mov dword [esp + 0x28], edi
mov edi, ebx
sub edi, dword [esp + 0x20]
add eax, eax
mov ebp, edi
sar ebp, 0x1f
mov dword [esp + 0x24], ebp
mov ebp, ecx
sub ebp, eax
movzx eax, word [eax + ecx + 2]
sub eax, dword [esp + 0x20]
movzx ebp, word [ebp + 2]
mov dword [esp + 0x34], eax
sub ebp, ebx
sar eax, 0x1f
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x2c]
mov ebx, ebp
sar ebx, 0x1f
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x24]
xor ebx, edi
mov edi, dword [esp + 0x30]
add eax, ebx
mov ebx, edi
xor ebx, esi
add eax, ebx
sub eax, dword [esp + 0x24]
add edx, 4
sub eax, edi
sub eax, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
xor edi, dword [esp + 0x34]
lea esi, [eax + eax*2]
mov eax, dword [esp + 0x38]
mov ebx, eax
xor ebx, ebp
add edi, ebx
sub edi, eax
sub edi, dword [esp + 0x20]
lea eax, [esi + edi*2]
mov dword [esp + edx + 0x40], eax
mov eax, dword [esp + edx + 0x4c]
test eax, eax
jg 0x10010080
mov edx, dword [esp + 0x48]
xor eax, eax
cmp dword [esp + 0x44], edx
mov edi, ecx
setg al
mov edx, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + eax*4 + 0x3c]
add edx, edx
add edx, edx
add edx, edx
mov si, word [edx + ecx + 2]
sub edi, edx
mov dx, word [edi + 2]
sar eax, 2
cmp si, dx
mov edi, eax
jae 0x100101bb
movzx edx, dx
cmp eax, edx
jl 0x100101ac
mov edi, edx
movzx esi, si
cmp esi, edi
jg 0x100101d3
cmp eax, edx
jl 0x100101d5
mov eax, edx
jmp 0x100101d5
movzx esi, si
cmp eax, esi
jl 0x100101c4
mov edi, esi
movzx edx, dx
cmp edx, edi
jle 0x100101cf
mov eax, edx
jmp 0x100101d5
cmp eax, esi
jl 0x100101d5
mov eax, esi
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [ecx + 2], ax
movzx eax, word [0x453c09c0]
add edx, 2
lea ebx, [eax - 3]
cmp edx, ebx
mov dword [esp + 0x18], edx
jl 0x10010059
mov ebp, dword [0x453c0ad0]
movzx ecx, word [0x45400ee6]
add edi, 1
sub ecx, 3
cmp edi, ecx
mov dword [esp + 0x10], edi
jl 0x10010020
mov bx, word [0x45400ee6]
mov esi, 1
movzx edx, bx
sub edx, esi
cmp edx, esi
mov dword [esp + 0x10], esi
jle 0x10010346
jmp 0x10010240
mov eax, esi
and eax, 7
lea ecx, [eax*4]
mov edi, ebp
shr edi, cl
mov edx, ebp
and edi, 1
add edi, 1
lea ecx, [edi - 1]
and ecx, 1
lea ecx, [ecx + eax*2]
movzx eax, word [0x453c09c0]
add ecx, ecx
shr edx, cl
lea ecx, [eax - 1]
and edx, 3
cmp edi, ecx
jge 0x10010331
lea ebx, [ebx]
mov ecx, dword [0x45400e88]
imul eax, esi
add eax, edi
lea eax, [ecx + eax*8]
mov ecx, 1
lea ebp, [esp + 0x4c]
jmp 0x100102a0
lea esi, [ecx*4]
add ecx, ecx
mov ebx, edx
sub ebx, esi
movzx ebx, word [eax + ebx*2]
add esi, edx
movzx esi, word [eax + esi*2]
add ecx, ecx
add ebx, esi
add ecx, ecx
mov esi, eax
sub esi, ecx
movzx ecx, word [ecx + eax + 2]
movzx esi, word [esi + 2]
sub ebx, esi
sub ebx, ecx
movzx ecx, word [eax + 2]
lea ecx, [ebx + ecx*2]
sar ecx, 1
cmp ecx, 0xffff
jge 0x100102ef
test ecx, ecx
jge 0x100102e7
xor ecx, ecx
jmp 0x100102f4
cmp ecx, 0xffff
jl 0x100102f4
mov ecx, 0xffff
mov word [eax + edx*2], cx
mov ecx, 2
sub ecx, edx
add ebp, 4
mov edx, ecx
mov ecx, dword [ebp]
test ecx, ecx
jg 0x100102a0
movzx eax, word [0x453c09c0]
mov esi, dword [esp + 0x10]
add edi, 2
lea ecx, [eax - 1]
cmp edi, ecx
jl 0x10010280
mov ebp, dword [0x453c0ad0]
mov bx, word [0x45400ee6]
movzx edx, bx
add esi, 1
sub edx, 1
cmp esi, edx
mov dword [esp + 0x10], esi
jl 0x10010240
mov edx, 1
movzx eax, bx
sub eax, edx
cmp eax, edx
mov dword [esp + 0x10], edx
jle 0x10010513
lea esp, [esp]
mov eax, edx
and eax, 7
lea ecx, [eax*4 + 2]
mov edi, ebp
shr edi, cl
mov ebx, 2
and edi, 1
add edi, 1
mov ecx, edi
and ecx, 1
lea ecx, [ecx + eax*2]
add ecx, ecx
mov eax, ebp
shr eax, cl
mov dword [esp + 0x18], edi
and eax, 3
sub ebx, eax
movzx eax, word [0x453c09c0]
lea ecx, [eax - 1]
cmp edi, ecx
mov dword [esp + 0x14], ebx
jge 0x100104fa
jmp 0x100103b0
imul eax, edx
mov edx, dword [0x45400e88]
add eax, edi
lea esi, [edx + eax*8]
mov edx, dword [esp + 0x50]
add edx, 1
test edx, edx
jle 0x10010490
movzx eax, word [esi + 2]
add eax, eax
mov dword [esp + 0x24], eax
xor ecx, ecx
lea esp, [esp]
lea edi, [edx*4]
movzx ebp, word [esi + 2]
mov eax, ebx
sub eax, edi
movzx eax, word [esi + eax*2]
add edi, ebx
movzx ebx, word [esi + edi*2]
mov dword [esp + 0x20], ebx
mov edi, eax
sub edi, ebx
add edx, edx
add edx, edx
add edx, edx
mov ebx, edi
sar ebx, 0x1f
mov dword [esp + 0x38], ebx
mov ebx, esi
sub ebx, edx
movzx ebx, word [ebx + 2]
movzx edx, word [edx + esi + 2]
mov dword [esp + 0x30], ebx
sub ebx, ebp
sub eax, dword [esp + 0x30]
mov ebp, ebx
sar ebp, 0x1f
mov dword [esp + 0x28], ebp
movzx ebp, word [esi + 2]
mov dword [esp + 0x2c], edx
sub eax, dword [esp + 0x2c]
sub edx, ebp
add eax, dword [esp + 0x24]
mov ebp, edx
add eax, dword [esp + 0x20]
sar ebp, 0x1f
mov dword [esp + 0x34], ebp
xor ebp, edx
mov edx, dword [esp + 0x28]
xor edx, ebx
add ebp, edx
mov edx, dword [esp + 0x38]
mov ebx, edx
xor ebx, edi
add ebp, ebx
sub ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
sub ebp, edx
sub ebp, dword [esp + 0x34]
mov edx, dword [esp + ecx + 0x54]
add edx, dword [esp + ecx + 0x50]
add ecx, 4
test edx, edx
mov dword [esp + ecx + 0x40], ebp
mov dword [esp + ecx + 0x38], eax
jg 0x100103e0
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
cmp ebp, eax
je 0x100104ab
xor ecx, ecx
cmp ebp, eax
setg cl
mov eax, dword [esp + ecx*4 + 0x3c]
sar eax, 1
jmp 0x100104b8
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add eax, edx
sar eax, 2
cmp eax, 0xffff
jge 0x100104ce
test eax, eax
jge 0x100104c7
xor eax, eax
jmp 0x100104d3
cmp eax, 0xffff
jl 0x100104d3
mov eax, 0xffff
mov edx, dword [esp + 0x10]
mov word [esi + ebx*2], ax
movzx eax, word [0x453c09c0]
add edi, 2
lea ecx, [eax - 1]
cmp edi, ecx
mov dword [esp + 0x18], edi
jl 0x100103b0
mov ebp, dword [0x453c0ad0]
movzx eax, word [0x45400ee6]
add edx, 1
sub eax, 1
cmp edx, eax
mov dword [esp + 0x10], edx
jl 0x10010360
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret