Function at 0x10015380
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x250
lea eax, [esp + 0xb0]
push ebx
push ebp
mov ebp, dword [esp + 0x264]
push esi
sub ebp, 0x10
push edi
mov edi, ebp
mov esi, ebp
push eax
and edi, 0xf
shr esi, 4
call fcn.10061090
mov ecx, dword [esp + 0x26c]
push ebp
lea edx, [esp + 0xc8]
lea ebx, [ecx + 0x10]
push ebx
push edx
call fcn.100610e0
lea eax, [esp + 0xd0]
lea ecx, [esp + 0x54]
push eax
push ecx
call fcn.10061250
mov edx, dword [esp + 0x280]
push 0x10
lea eax, [esp + 0x40]
push edx
push eax
call fcn.10018fa0
lea ecx, [esp + 0x68]
push 0x10
lea edx, [esp + 0xd8]
push ecx
push edx
call fcn.10018fa0
lea eax, [esp + 0x54]
push 0x10
lea ecx, [esp + 0xa4]
push eax
push ecx
call fcn.10018fa0
lea edx, [esp + 0x80]
push 0x10
lea eax, [esp + 0xc0]
push edx
push eax
call fcn.10018fa0
mov edx, dword [esp + 0x2ac]
add esp, 0x48
lea ecx, [esp + 0x70]
push 0x20
push ecx
push 1
push 0
push edx
call fcn.100152e0
add esp, 0x14
test eax, eax
jne 0x1001584a
lea eax, [esp + 0x70]
push 0x10
lea ecx, [esp + 0xa4]
push eax
push ecx
call fcn.10018fa0
lea edx, [esp + 0x7c]
lea eax, [esp + 0x128]
push edx
push 0x80
push 0
push eax
call fcn.100603e0
add esp, 0x1c
test eax, eax
jge 0x100154a1
push eax
push 0x1008baf4
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
push 0
lea ecx, [esp + 0x5c]
push 2
push ecx
call fcn.100604e0
add esp, 0xc
test eax, eax
jge 0x100154d4
push eax
push 0x1008bb28
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
test esi, esi
je 0x10015517
mov edx, esi
push ebx
shl edx, 7
push edx
lea eax, [esp + 0x124]
push ebx
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.10060540
add esp, 0x14
test eax, eax
jge 0x10015517
push eax
push 0x1008bb60
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
test edi, edi
je 0x100155b7
mov eax, dword [esp + 0x268]
mov ebx, esi
shl ebx, 4
add ebx, eax
push 0x10
lea edx, [esp + 0x14]
push ebx
push edx
call fcn.10018fa0
add esp, 0xc
xor eax, eax
test edi, edi
jbe 0x10015556
mov cl, byte [ebx + eax + 0x10]
mov dl, byte [esp + eax + 0x10]
xor dl, cl
mov byte [esp + eax + 0x10], dl
inc eax
cmp eax, edi
jb 0x10015543
lea edx, [esp + 0x10]
lea eax, [esp + 0x10]
push edx
push 0x80
lea ecx, [esp + 0x124]
push eax
lea edx, [esp + 0x64]
push ecx
push edx
call fcn.10060540
add esp, 0x14
test eax, eax
jge 0x1001559c
push eax
push 0x1008bb98
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
push edi
lea eax, [ebx + 0x10]
push ebx
push eax
call fcn.10018fa0
lea ecx, [esp + 0x1c]
push 0x10
push ecx
push ebx
call fcn.10018fa0
add esp, 0x18
lea edx, [esp + 0xc0]
push edx
call fcn.10061090
push ebp
mov ebp, dword [esp + 0x270]
lea eax, [esp + 0xc8]
lea ebx, [ebp + 0x10]
push ebx
push eax
call fcn.100610e0
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x54]
push ecx
push edx
call fcn.10061250
lea eax, [esp + 0x3c]
push 0x10
lea ecx, [esp + 0x8c]
push eax
push ecx
call fcn.10018fa0
lea edx, [esp + 0xd4]
push 0x10
lea eax, [esp + 0xa8]
push edx
push eax
call fcn.10018fa0
lea ecx, [esp + 0x74]
push 0x10
lea edx, [esp + 0xc4]
push ecx
push edx
call fcn.10018fa0
mov ecx, dword [esp + 0x2a0]
lea eax, [esp + 0xac]
push 0x30
push eax
push 2
push 0
push ecx
call fcn.100152e0
add esp, 0x50
mov dword [esp + 0x20], eax
test eax, eax
je 0x10015838
lea edx, [esp + 0xa0]
lea eax, [esp + 0x11c]
push edx
push 0x80
push 1
push eax
call fcn.100603e0
add esp, 0x10
test eax, eax
jge 0x10015699
push eax
push str.classic_aes_encrypt_ark:_aes_makeKey_returned__d_n
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
push 0
lea ecx, [esp + 0x5c]
push 2
push ecx
call fcn.100604e0
add esp, 0xc
test eax, eax
jge 0x100156cc
push eax
push str.classic_aes_encrypt_ark:_aes_cipherInit_returned__d_n
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
cmp esi, 1
push 0x10
jbe 0x100156e9
mov edx, esi
lea ecx, [esp + 0x38]
shl edx, 4
lea eax, [edx + ebp - 0x10]
push eax
push ecx
call fcn.10018fa0
jmp 0x100156f5
lea edx, [esp + 0x38]
push 0
push edx
call fcn.10018f80
add esp, 0xc
test esi, esi
je 0x1001573b
mov eax, esi
push ebx
shl eax, 7
push eax
lea ecx, [esp + 0x124]
push ebx
lea edx, [esp + 0x64]
push ecx
push edx
call fcn.10060ac0
add esp, 0x14
test eax, eax
jge 0x1001573b
push eax
push 0x1008bc3c
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
test edi, edi
je 0x10015819
shl esi, 4
add esi, ebp
lea ecx, [esp + 0x34]
mov eax, esi
sub ecx, esi
mov ebp, 0x10
mov dl, byte [ecx + eax]
mov bl, byte [eax]
xor bl, dl
mov byte [eax], bl
inc eax
dec ebp
jne 0x10015755
xor eax, eax
test edi, edi
jbe 0x10015779
mov cl, byte [eax + esi + 0x10]
mov bl, byte [eax + esi]
xor bl, cl
mov byte [eax + esi], bl
inc eax
cmp eax, edi
jb 0x10015768
lea ebx, [esi + 0x10]
push edi
lea edx, [esp + 0x14]
push ebx
push edx
call fcn.10018fa0
mov eax, 0x10
lea ecx, [edi + esi]
sub eax, edi
lea edx, [esp + edi + 0x1c]
push eax
push ecx
push edx
call fcn.10018fa0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x28]
push eax
push 0x80
lea edx, [esp + 0x13c]
push ecx
lea eax, [esp + 0x7c]
push edx
push eax
call fcn.10060ac0
add esp, 0x2c
test eax, eax
jge 0x100157e4
push eax
push 0x1008bc74
call fcn.10018210
add esp, 8
mov eax, 0x2bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
xor eax, eax
mov cl, byte [esp + eax + 0x34]
mov dl, byte [esp + eax + 0x10]
xor dl, cl
mov byte [esp + eax + 0x10], dl
inc eax
cmp eax, 0x10
jb 0x100157e6
push edi
push esi
push ebx
call fcn.10018fa0
lea edx, [esp + 0x1c]
push 0x10
push edx
push esi
call fcn.10018fa0
mov ebp, dword [esp + 0x280]
add esp, 0x18
lea eax, [esp + 0x24]
push 0x10
push eax
push ebp
call fcn.10018fa0
mov eax, dword [esp + 0x2c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
lea ecx, [esp + 0x70]
push 0x10
push ecx
push ebp
call fcn.10018fa0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret