Function at 0x100a9560
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b122d
mov eax, dword fs:[0]
push eax
sub esp, 0x88
push ebx
push esi
push edi
mov eax, dword [0x100db274]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x78], edx
xor eax, eax
mov byte [ebp - 0x58], 1
xor ebx, ebx
mov dword [ebp - 0x64], eax
xor edi, edi
mov dword [ebp - 0x5c], ebx
xor esi, esi
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x30], 1
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], esi
mov byte [ebp - 0x1c], 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 8]
xor ecx, ecx
add edx, 0x10
mov dword [ebp - 4], esi
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x18], edx
test eax, eax
jle 0x100a9998
mov eax, dword [edx]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x68]
mov eax, dword [eax + 0xcc]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x94]
push eax
call fcn.100a6bb0
cmp eax, 0xffffffff
je 0x100a961b
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + eax*4]
test eax, eax
jne 0x100a997e
mov eax, dword [ebp - 0x14]
mov ecx, eax
mov dword [ebp - 0x8c], eax
shl ecx, 0xf
not ecx
add ecx, eax
mov eax, ecx
shr eax, 0xa
xor eax, ecx
lea ecx, [eax + eax*8]
mov eax, ecx
shr eax, 6
xor ecx, eax
mov eax, ecx
shl eax, 0xb
not eax
add ecx, eax
lea eax, [esi - 1]
mov edx, ecx
shr edx, 0x10
xor edx, ecx
lea ecx, [ebp - 0x68]
and eax, edx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x8c]
push eax
call fcn.100a6bb0
cmp eax, 0xffffffff
je 0x100a967e
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], edx
jmp 0x100a9973
mov ecx, dword [ebp - 0x3c]
mov eax, esi
mov edx, ecx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x70], edx
cmp edx, eax
jne 0x100a9703
lea edi, [edx + edx]
test edx, edx
jne 0x100a969b
mov edi, 1
cmp eax, edi
jge 0x100a9703
test edi, edi
je 0x100a96bf
lea eax, [edi*4]
push 0x10
push eax
call fcn.10071340
mov edx, dword [ebp - 0x70]
add esp, 8
mov ecx, dword [ebp - 0x3c]
mov ebx, eax
jmp 0x100a96c1
xor ebx, ebx
test ecx, ecx
jle 0x100a96de
mov esi, dword [ebp - 0x34]
mov ecx, ebx
sub esi, ebx
nop dword [eax]
mov eax, dword [esi + ecx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x100a96d0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x100a96f4
cmp byte [ebp - 0x30], 0
je 0x100a96f4
push eax
call fcn.10071350
add esp, 4
mov ecx, dword [ebp - 0x3c]
mov esi, edi
mov byte [ebp - 0x30], 1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov dword [eax + ecx*4], edi
inc ecx
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x28]
cmp ecx, edx
jne 0x100a97a5
lea ebx, [ecx + ecx]
test ecx, ecx
jne 0x100a972a
mov ebx, 1
mov dword [ebp - 0x10], ebx
cmp edx, ebx
jge 0x100a97a5
test ebx, ebx
je 0x100a974c
lea eax, [ebx*8]
push 0x10
push eax
call fcn.10071340
mov ecx, dword [ebp - 0x28]
add esp, 8
jmp 0x100a974e
xor eax, eax
mov dword [ebp - 0x6c], eax
test ecx, ecx
jle 0x100a977b
mov edi, dword [ebp - 0x20]
mov edx, eax
sub edi, eax
mov ebx, ecx
nop
mov eax, dword [edi + edx]
lea edx, [edx + 8]
mov ecx, dword [edi + edx - 4]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
sub ebx, 1
jne 0x100a9760
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x100a9791
cmp byte [ebp - 0x1c], 0
je 0x100a9791
push eax
call fcn.10071350
add esp, 4
mov eax, dword [ebp - 0x6c]
mov edx, ebx
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x1c], 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edx
jmp 0x100a97a8
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x88]
mov dword [eax + ecx*8], edi
mov dword [eax + ecx*8 + 4], edx
inc ecx
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x7c], esi
jge 0x100a995b
mov ebx, dword [ebp - 0x64]
cmp ebx, esi
jge 0x100a9953
mov eax, ebx
mov dword [ebp - 0x10], eax
cmp esi, eax
jl 0x100a984f
jle 0x100a9841
cmp dword [ebp - 0x60], esi
jge 0x100a9841
test esi, esi
je 0x100a97fa
lea eax, [esi*4]
push 0x10
push eax
call fcn.10071340
mov ebx, eax
add esp, 8
mov eax, dword [ebp - 0x10]
jmp 0x100a97fc
xor ebx, ebx
test eax, eax
jle 0x100a981e
mov edi, dword [ebp - 0x5c]
mov ecx, ebx
sub edi, ebx
mov edx, eax
nop dword [eax]
mov eax, dword [edi + ecx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x100a9810
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x100a9834
cmp byte [ebp - 0x58], 0
je 0x100a9834
push eax
call fcn.10071350
add esp, 4
mov dword [ebp - 0x5c], ebx
mov ebx, dword [ebp - 0x64]
mov byte [ebp - 0x58], 1
mov dword [ebp - 0x60], esi
mov edx, dword [ebp - 0x5c]
mov ecx, esi
sub ecx, ebx
xor eax, eax
lea edi, [edx + ebx*4]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x50]
mov eax, esi
mov dword [ebp - 0x64], eax
cmp esi, edi
jl 0x100a98d7
jle 0x100a98c5
cmp dword [ebp - 0x4c], esi
jge 0x100a98c5
test esi, esi
je 0x100a987c
lea eax, [esi*4]
push 0x10
push eax
call fcn.10071340
add esp, 8
mov ebx, eax
jmp 0x100a987e
xor ebx, ebx
test edi, edi
jle 0x100a98a1
mov edi, dword [ebp - 0x48]
mov ecx, ebx
mov edx, dword [ebp - 0x50]
sub edi, ebx
nop dword [eax]
mov eax, dword [edi + ecx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x100a9890
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x100a98b7
cmp byte [ebp - 0x44], 0
je 0x100a98b7
push eax
call fcn.10071350
add esp, 4
mov edx, ebx
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], esi
jmp 0x100a98c8
mov edx, dword [ebp - 0x48]
cmp edi, esi
jge 0x100a98d7
mov ecx, esi
sub ecx, edi
xor eax, eax
lea edi, [edx + edi*4]
rep stosd dword es:[edi], eax
mov eax, esi
mov dword [ebp - 0x50], eax
test esi, esi
jle 0x100a98f7
mov edi, dword [ebp - 0x5c]
or eax, 0xffffffff
mov ecx, esi
rep stosd dword es:[edi], eax
test esi, esi
jle 0x100a98f7
mov edi, dword [ebp - 0x48]
mov ecx, esi
or eax, eax
rep stosd dword es:[edi], eax
xor edx, edx
cmp dword [ebp - 0x10], edx
jle 0x100a9953
mov edi, dword [ebp - 0x48]
lea ebx, [esi - 1]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
lea edi, [edi + 4]
mov ecx, dword [eax + edx*8]
mov eax, ecx
shl eax, 0xf
not eax
add ecx, eax
mov eax, ecx
shr eax, 0xa
xor eax, ecx
lea ecx, [eax + eax*8]
mov eax, ecx
shr eax, 6
xor ecx, eax
mov eax, ecx
shl eax, 0xb
not eax
add ecx, eax
mov eax, ecx
shr eax, 0x10
xor ecx, eax
mov eax, ebx
and eax, ecx
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [edi - 4], eax
mov dword [ecx], edx
inc edx
cmp edx, esi
jl 0x100a9907
mov esi, dword [ebp - 0x38]
lea ecx, [esi - 1]
and ecx, dword [ebp - 0x80]
jmp 0x100a9961
mov ecx, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x48]
mov eax, dword [ebx + ecx*4]
mov dword [edi + edx*4], eax
mov dword [ebx + ecx*4], edx
mov ecx, dword [ebp - 0x14]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x74], ecx
mov eax, dword [eax + 8]
cmp ecx, eax
jl 0x100a95e5
jmp 0x100a999b
mov dword [ebp - 0x18], edx
xor esi, esi
test eax, eax
jle 0x100a99c6
mov ebx, dword [ebp - 0x78]
mov eax, dword [edx]
mov ecx, dword [eax + esi*4]
cmp dword [ecx + 0x108], 1
jne 0x100a99bd
mov eax, dword [ecx]
push dword [ebp + 8]
call dword [eax + 0x14]
mov edx, dword [ebp - 0x18]
inc esi
cmp esi, dword [ebx + 8]
jl 0x100a99a4
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], 1
test eax, eax
je 0x100a99e3
cmp byte [ebp - 0x1c], 0
je 0x100a99e3
push eax
call fcn.10071350
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], 2
test eax, eax
je 0x100a9a00
cmp byte [ebp - 0x30], 0
je 0x100a9a00
push eax
call fcn.10071350
add esp, 4
mov dword [ebp - 4], 3
test edi, edi
je 0x100a9a1a
cmp byte [ebp - 0x44], 0
je 0x100a9a1a
push edi
call fcn.10071350
add esp, 4
mov dword [ebp - 4], 4
test ebx, ebx
je 0x100a9a34
cmp byte [ebp - 0x58], 0
je 0x100a9a34
push ebx
call fcn.10071350
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4