Function at 0x100af710
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b727d
mov eax, dword fs:[0]
push eax
sub esp, 0x88
push ebx
push esi
push edi
mov eax, dword [0x100e3274]
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 0x100afb48
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.100ac750
cmp eax, 0xffffffff
je 0x100af7cb
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + eax*4]
test eax, eax
jne 0x100afb2e
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.100ac750
cmp eax, 0xffffffff
je 0x100af82e
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], edx
jmp 0x100afb23
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 0x100af8b3
lea edi, [edx + edx]
test edx, edx
jne 0x100af84b
mov edi, 1
cmp eax, edi
jge 0x100af8b3
test edi, edi
je 0x100af86f
lea eax, [edi*4]
push 0x10
push eax
call fcn.10076ef0
mov edx, dword [ebp - 0x70]
add esp, 8
mov ecx, dword [ebp - 0x3c]
mov ebx, eax
jmp 0x100af871
xor ebx, ebx
test ecx, ecx
jle 0x100af88e
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 0x100af880
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x100af8a4
cmp byte [ebp - 0x30], 0
je 0x100af8a4
push eax
call fcn.10076f00
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 0x100af955
lea ebx, [ecx + ecx]
test ecx, ecx
jne 0x100af8da
mov ebx, 1
mov dword [ebp - 0x10], ebx
cmp edx, ebx
jge 0x100af955
test ebx, ebx
je 0x100af8fc
lea eax, [ebx*8]
push 0x10
push eax
call fcn.10076ef0
mov ecx, dword [ebp - 0x28]
add esp, 8
jmp 0x100af8fe
xor eax, eax
mov dword [ebp - 0x6c], eax
test ecx, ecx
jle 0x100af92b
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 0x100af910
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x100af941
cmp byte [ebp - 0x1c], 0
je 0x100af941
push eax
call fcn.10076f00
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 0x100af958
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 0x100afb0b
mov ebx, dword [ebp - 0x64]
cmp ebx, esi
jge 0x100afb03
mov eax, ebx
mov dword [ebp - 0x10], eax
cmp esi, eax
jl 0x100af9ff
jle 0x100af9f1
cmp dword [ebp - 0x60], esi
jge 0x100af9f1
test esi, esi
je 0x100af9aa
lea eax, [esi*4]
push 0x10
push eax
call fcn.10076ef0
mov ebx, eax
add esp, 8
mov eax, dword [ebp - 0x10]
jmp 0x100af9ac
xor ebx, ebx
test eax, eax
jle 0x100af9ce
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 0x100af9c0
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x100af9e4
cmp byte [ebp - 0x58], 0
je 0x100af9e4
push eax
call fcn.10076f00
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 0x100afa87
jle 0x100afa75
cmp dword [ebp - 0x4c], esi
jge 0x100afa75
test esi, esi
je 0x100afa2c
lea eax, [esi*4]
push 0x10
push eax
call fcn.10076ef0
add esp, 8
mov ebx, eax
jmp 0x100afa2e
xor ebx, ebx
test edi, edi
jle 0x100afa51
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 0x100afa40
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x100afa67
cmp byte [ebp - 0x44], 0
je 0x100afa67
push eax
call fcn.10076f00
add esp, 4
mov edx, ebx
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], esi
jmp 0x100afa78
mov edx, dword [ebp - 0x48]
cmp edi, esi
jge 0x100afa87
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 0x100afaa7
mov edi, dword [ebp - 0x5c]
or eax, 0xffffffff
mov ecx, esi
rep stosd dword es:[edi], eax
test esi, esi
jle 0x100afaa7
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 0x100afb03
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 0x100afab7
mov esi, dword [ebp - 0x38]
lea ecx, [esi - 1]
and ecx, dword [ebp - 0x80]
jmp 0x100afb11
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 0x100af795
jmp 0x100afb4b
mov dword [ebp - 0x18], edx
xor esi, esi
test eax, eax
jle 0x100afb76
mov ebx, dword [ebp - 0x78]
mov eax, dword [edx]
mov ecx, dword [eax + esi*4]
cmp dword [ecx + 0x108], 1
jne 0x100afb6d
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 0x100afb54
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], 1
test eax, eax
je 0x100afb93
cmp byte [ebp - 0x1c], 0
je 0x100afb93
push eax
call fcn.10076f00
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], 2
test eax, eax
je 0x100afbb0
cmp byte [ebp - 0x30], 0
je 0x100afbb0
push eax
call fcn.10076f00
add esp, 4
mov dword [ebp - 4], 3
test edi, edi
je 0x100afbca
cmp byte [ebp - 0x44], 0
je 0x100afbca
push edi
call fcn.10076f00
add esp, 4
mov dword [ebp - 4], 4
test ebx, ebx
je 0x100afbe4
cmp byte [ebp - 0x58], 0
je 0x100afbe4
push ebx
call fcn.10076f00
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