Function at 0xa130e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x150
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ebp + 0x18], 0
setne al
lea eax, [eax*8 + 0x120]
lea edx, [esp + 0x24]
push 0
push 0
push eax
push edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00a2eeb0
test eax, eax
js 0xa131ae
mov dword [esp], 0x1e110412
mov byte [esp + 4], 0x60
mov dword [esp + 5], 0
mov esi, 0x1b11af69
mov edi, 0xe4ee5096
nop
nop
nop
movzx ebx, byte [esp + esi - 0x1b11af69]
mov edx, esi
and edx, ebx
add edx, edx
sub edx, ebx
add edx, edi
and edx, esi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x7d
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0xf3
mov byte [esp + esi - 0x1b11af69], al
inc esi
dec edi
cmp esi, 0x1b11af72
jne 0xa13140
cmp byte [esp + 0x43], 0
js 0xa131b5
lea eax, [esp + 0x2c]
mov ecx, esp
push eax
push ecx
push dword [ebp + 0x14]
call fcn.009f5e20
add esp, 0xc
mov al, 1
mov dword [esp + 0x10], eax
jmp 0xa13210
xor ebx, ebx
jmp 0xa1359a
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, esi
or eax, ebx
je 0xa13208
mov edi, dword [esp + 0x34]
inc edi
push edi
call fcn.009fc880
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push ebx
push esi
call fcn.00a2eeb0
test eax, eax
setns al
mov dword [esp + 0x10], eax
js 0xa131fd
mov eax, esp
push edi
push eax
push dword [ebp + 0x14]
call fcn.009f5e20
add esp, 0xc
push edi
call fcn.009fc890
add esp, 4
jmp 0xa13210
mov dword [esp + 0x10], 0
movzx eax, byte [ebp + 0x18]
movzx eax, al
mov dword [esp + 0x14], eax
lea eax, [eax*8 + 0xe8]
mov dword [esp], 0x5e52645a
mov dword [esp + 4], 0xc36f
mov ecx, 0x9fcef831
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x603107cf]
xor edx, ecx
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xa
mov byte [esp + ecx + 0x603107cf], dl
inc ecx
cmp ecx, 0x9fcef839
jne 0xa13240
lea ecx, [esp + eax]
add ecx, 0x24
cmp byte [esp + eax + 0x3b], 0
js 0xa13288
mov eax, esp
push ecx
push eax
mov esi, dword [ebp + 0x14]
push esi
call fcn.009f5e20
add esp, 0xc
mov bl, 1
jmp 0xa132d9
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
mov eax, ebx
or eax, esi
je 0xa132d4
mov edi, dword [ecx + 8]
inc edi
push edi
call fcn.009fc880
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.00a2eeb0
test eax, eax
setns bl
mov esi, dword [ebp + 0x14]
js 0xa132c9
mov eax, esp
push edi
push eax
push esi
call fcn.009f5e20
add esp, 0xc
push edi
call fcn.009fc890
add esp, 4
jmp 0xa132d9
xor ebx, ebx
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 0x10]
and dl, bl
mov dword [esp], 0x97919e98
mov dword [esp + 4], 0xae839e8b
mov byte [esp + 8], 0x38
mov dword [esp + 9], 0
mov word [esp + 0xd], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x88
xor cl, byte [esp + eax]
add cl, 0x58
mov byte [esp + eax], cl
inc eax
cmp eax, 0xf
jne 0xa13310
cmp byte [esp + 0x5b], 0
js 0xa13344
lea eax, [esp + 0x44]
mov ecx, esp
push eax
push ecx
push esi
mov edi, edx
call fcn.009f5e20
mov edx, edi
add esp, 0xc
mov bl, 1
jmp 0xa133a1
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov eax, ebx
or eax, esi
je 0xa1339c
mov dword [esp + 0x10], edx
mov edi, dword [esp + 0x4c]
inc edi
push edi
call fcn.009fc880
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.00a2eeb0
test eax, eax
setns bl
mov esi, dword [ebp + 0x14]
js 0xa1338d
mov eax, esp
push edi
push eax
push esi
call fcn.009f5e20
add esp, 0xc
push edi
call fcn.009fc890
add esp, 4
mov edx, dword [esp + 0x10]
jmp 0xa133a1
xor ebx, ebx
mov esi, dword [ebp + 0x14]
and dl, bl
mov dword [esp], 0x212e5c14
mov byte [esp + 4], 0xb8
mov word [esp + 5], 0
mov byte [esp + 7], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0x5f
xor cl, byte [esp + eax]
add cl, 0x25
mov byte [esp + eax], cl
inc eax
cmp eax, 8
jne 0xa133c0
cmp byte [esp + 0x73], 0
js 0xa133f4
lea eax, [esp + 0x5c]
mov ecx, esp
push eax
push ecx
push esi
mov edi, edx
call fcn.009f5e20
mov edx, edi
add esp, 0xc
mov bl, 1
jmp 0xa13451
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov eax, ebx
or eax, esi
je 0xa1344c
mov dword [esp + 0x10], edx
mov edi, dword [esp + 0x64]
inc edi
push edi
call fcn.009fc880
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.00a2eeb0
test eax, eax
setns bl
mov esi, dword [ebp + 0x14]
js 0xa1343d
mov eax, esp
push edi
push eax
push esi
call fcn.009f5e20
add esp, 0xc
push edi
call fcn.009fc890
add esp, 4
mov edx, dword [esp + 0x10]
jmp 0xa13451
xor ebx, ebx
mov esi, dword [ebp + 0x14]
and dl, bl
mov edi, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + ecx*8 + 0x124]
mov ecx, dword [esp + ecx*8 + 0x128]
mov dword [esp], 0xa0e173b
mov dword [esp + 4], 0x34073402
mov dword [esp + 8], 0x89330303
mov word [esp + 0xc], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xe5
xor bl, byte [esp + edx]
add bl, 0x87
mov byte [esp + edx], bl
inc edx
cmp edx, 0xe
jne 0xa13490
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fild qword [esp + 0x18]
sub esp, 0x10
lea eax, [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], esi
fstp qword [esp + 8]
call fcn.009f5e70
add esp, 0x10
test eax, eax
sete cl
movzx eax, byte [esp + 0x7c]
mov dword [esp], 0xa4bba6ab
mov dword [esp + 4], 0x5b5d4ab3
mov dword [esp + 8], 0xe34f
mov edx, edi
and dl, cl
mov edi, edx
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x16
mov ebx, edx
xor ebx, 0xfb
add ebx, esi
xor bl, byte [esp + edx]
add bl, 0x19
mov byte [esp + edx], bl
inc edx
add ecx, 2
cmp edx, 0xc
jne 0xa13500
push eax
lea eax, [esp + 4]
push eax
mov esi, dword [ebp + 0x14]
push esi
call fcn.009f5f00
add esp, 0xc
test eax, eax
setne bl
mov ecx, edi
xor bl, cl
movzx eax, byte [esp + 0x7d]
mov dword [esp], 0xa9a6a7b4
mov dword [esp + 4], 0xd1d4d6b9
mov word [esp + 8], 0x63e3
mov dword [esp + 0xa], 0
and bl, cl
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x3b
xor dl, byte [esp + ecx]
add dl, 0xd9
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 0xe
jne 0xa13570
push eax
lea eax, [esp + 4]
push eax
push esi
call fcn.009f5f00
add esp, 0xc
test eax, eax
sete al
and bl, al
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret