Function at 0x99b332
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x18]
push 8
push dword [edi]
call fcn.009a0cb5
push 8
push dword [edi]
mov esi, eax
mov ebp, 0xff00ff00
and esi, ebp
call fcn.009a0ca3
mov ebx, 0xff00ff
and eax, ebx
or eax, esi
mov esi, dword [esp + 0x24]
mov dword [esi], eax
push 8
push dword [edi + 4]
call fcn.009a0cb5
push 8
push dword [edi + 4]
mov dword [esp + 0x38], eax
and dword [esp + 0x38], ebp
call fcn.009a0ca3
and eax, ebx
or eax, dword [esp + 0x38]
push 8
mov dword [esi + 4], eax
push dword [edi + 8]
call fcn.009a0cb5
push 8
push dword [edi + 8]
mov dword [esp + 0x48], eax
and dword [esp + 0x48], ebp
call fcn.009a0ca3
and eax, ebx
or eax, dword [esp + 0x48]
push 8
mov dword [esi + 8], eax
push dword [edi + 0xc]
call fcn.009a0cb5
push 8
push dword [edi + 0xc]
mov dword [esp + 0x58], eax
and dword [esp + 0x58], ebp
call fcn.009a0ca3
and eax, ebx
or eax, dword [esp + 0x58]
add esp, 0x40
cmp dword [esp + 0x1c], 0x80
mov dword [esi + 0xc], eax
jne 0x99b4f8
mov edx, eax
mov ecx, eax
shr ecx, 0x10
mov edi, edx
shr edi, 8
mov eax, 0xff
and ecx, eax
mov ecx, dword [ecx*4 + 0x993b68]
and edi, eax
mov edi, dword [edi*4 + 0x993b68]
xor ecx, 0x1000000
mov ebp, 0xff000000
and ecx, ebp
mov ebx, 0xff0000
and edi, ebx
xor ecx, edi
mov edi, edx
shr edi, 0x18
movzx edi, byte [edi*4 + 0x993b68]
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
xor ecx, edi
mov edi, 0xff00
and edx, edi
xor ecx, edx
xor ecx, dword [esi]
lea edx, [esi + 0x10]
mov dword [edx], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 4]
xor edx, ecx
mov ecx, dword [esi + 8]
xor ecx, edx
mov dword [esi + 0x18], ecx
xor ecx, dword [esi + 0xc]
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], ecx
mov dword [esp + 0x18], 0x99536c
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 0xc]
mov edx, esi
mov dword [esp + 0x1c], esi
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + 0x993b68]
shr edx, 8
and esi, ebp
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
and edx, ebx
xor edx, esi
mov esi, dword [esp + 0x1c]
shr esi, 0x18
movzx esi, byte [esi*4 + 0x993b68]
xor edx, esi
mov esi, dword [esp + 0x1c]
and esi, eax
mov esi, dword [esi*4 + 0x993b68]
and esi, edi
xor edx, esi
mov esi, dword [esp + 0x18]
xor edx, dword [esi]
add dword [esp + 0x18], 4
xor edx, dword [ecx]
lea esi, [ecx + 0x10]
mov dword [esi], edx
mov dword [esp + 0x1c], esi
mov esi, dword [ecx + 4]
xor esi, edx
mov dword [ecx + 0x14], esi
mov edx, dword [ecx + 8]
xor edx, esi
mov dword [ecx + 0x18], edx
mov esi, dword [ecx + 0xc]
xor esi, edx
cmp dword [esp + 0x18], 0x995390
mov dword [ecx + 0x1c], esi
jne 0x99b467
push 0xa
pop eax
jmp 0x99b852
push 8
push dword [edi + 0x10]
call fcn.009a0cb5
push 8
push dword [edi + 0x10]
mov dword [esp + 0x28], eax
and dword [esp + 0x28], ebp
call fcn.009a0ca3
and eax, ebx
or eax, dword [esp + 0x28]
push 8
mov dword [esi + 0x10], eax
push dword [edi + 0x14]
call fcn.009a0cb5
push 8
push dword [edi + 0x14]
mov dword [esp + 0x38], eax
and dword [esp + 0x38], ebp
call fcn.009a0ca3
and eax, ebx
or eax, dword [esp + 0x38]
add esp, 0x20
cmp dword [esp + 0x1c], 0xc0
mov dword [esi + 0x14], eax
jne 0x99b679
mov edx, eax
mov ecx, edx
shr ecx, 0x10
mov edi, edx
shr edi, 8
mov eax, 0xff
and ecx, eax
mov ecx, dword [ecx*4 + 0x993b68]
and edi, eax
mov edi, dword [edi*4 + 0x993b68]
xor ecx, 0x1000000
mov ebp, 0xff000000
and ecx, ebp
mov ebx, 0xff0000
and edi, ebx
xor ecx, edi
mov edi, edx
shr edi, 0x18
movzx edi, byte [edi*4 + 0x993b68]
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
xor ecx, edi
mov edi, 0xff00
and edx, edi
xor ecx, edx
xor ecx, dword [esi]
lea edx, [esi + 0x18]
mov dword [edx], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 4]
xor edx, ecx
mov ecx, dword [esi + 8]
xor ecx, edx
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0xc]
xor edx, ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edx
mov dword [esp + 0x18], 0x99536c
mov ecx, dword [esi + 0x10]
xor ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x14]
xor edx, ecx
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], ecx
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x14]
mov ecx, edx
mov dword [esp + 0x1c], edx
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
shr ecx, 8
and edx, ebp
and ecx, eax
mov ecx, dword [ecx*4 + 0x993b68]
and ecx, ebx
xor ecx, edx
mov edx, dword [esp + 0x1c]
shr edx, 0x18
movzx edx, byte [edx*4 + 0x993b68]
xor ecx, edx
mov edx, dword [esp + 0x1c]
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
and edx, edi
xor ecx, edx
mov edx, dword [esp + 0x18]
xor ecx, dword [edx]
add dword [esp + 0x18], 4
xor ecx, dword [esi]
lea edx, [esi + 0x18]
mov dword [edx], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 4]
xor edx, ecx
mov dword [esi + 0x1c], edx
mov ecx, dword [esi + 8]
xor ecx, edx
mov dword [esi + 0x20], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
cmp dword [esp + 0x18], 0x995388
mov dword [esi + 0x24], edx
jne 0x99b5d8
push 0xc
jmp 0x99b4f2
push 8
push dword [edi + 0x18]
call fcn.009a0cb5
push 8
push dword [edi + 0x18]
mov dword [esp + 0x28], eax
and dword [esp + 0x28], ebp
call fcn.009a0ca3
and eax, ebx
or eax, dword [esp + 0x28]
push 8
mov dword [esi + 0x18], eax
push dword [edi + 0x1c]
call fcn.009a0cb5
push 8
push dword [edi + 0x1c]
mov dword [esp + 0x38], eax
and dword [esp + 0x38], ebp
call fcn.009a0ca3
and eax, ebx
or eax, dword [esp + 0x38]
add esp, 0x20
cmp dword [esp + 0x1c], 0x100
mov dword [esi + 0x1c], eax
jne 0x99b850
mov edx, eax
mov ecx, edx
shr ecx, 0x10
mov edi, edx
shr edi, 8
mov eax, 0xff
and ecx, eax
mov ecx, dword [ecx*4 + 0x993b68]
and edi, eax
mov edi, dword [edi*4 + 0x993b68]
xor ecx, 0x1000000
mov ebp, 0xff000000
and ecx, ebp
mov ebx, 0xff0000
and edi, ebx
xor ecx, edi
mov edi, edx
shr edi, 0x18
movzx edi, byte [edi*4 + 0x993b68]
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
xor ecx, edi
mov edi, 0xff00
and edx, edi
xor ecx, edx
xor ecx, dword [esi]
lea edx, [esi + 0x20]
mov dword [edx], ecx
mov dword [esp + 0x14], edx
mov edx, dword [esi + 4]
xor edx, ecx
mov ecx, dword [esi + 8]
xor ecx, edx
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0xc]
xor edx, ecx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], edx
mov dword [esp + 0x18], 0x99536c
mov edx, dword [esi + 0x2c]
mov ecx, edx
mov dword [esp + 0x1c], edx
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
and edx, edi
shr ecx, 0x10
and ecx, eax
mov ecx, dword [ecx*4 + 0x993b68]
and ecx, ebx
xor ecx, edx
mov edx, dword [esp + 0x1c]
shr edx, 0x18
mov edx, dword [edx*4 + 0x993b68]
and edx, ebp
xor ecx, edx
mov edx, dword [esp + 0x1c]
and edx, eax
movzx edx, byte [edx*4 + 0x993b68]
xor ecx, edx
xor ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
xor edx, ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x18]
xor ecx, edx
mov edx, dword [esi + 0x1c]
xor edx, ecx
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], ecx
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x1c]
mov ecx, edx
mov dword [esp + 0x1c], edx
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
shr ecx, 8
and edx, ebp
and ecx, eax
mov ecx, dword [ecx*4 + 0x993b68]
and ecx, ebx
xor ecx, edx
mov edx, dword [esp + 0x1c]
shr edx, 0x18
movzx edx, byte [edx*4 + 0x993b68]
xor ecx, edx
mov edx, dword [esp + 0x1c]
and edx, eax
mov edx, dword [edx*4 + 0x993b68]
and edx, edi
xor ecx, edx
xor ecx, dword [esi]
mov edx, dword [esp + 0x18]
xor ecx, dword [edx]
add dword [esp + 0x18], 4
lea edx, [esi + 0x20]
mov dword [edx], ecx
mov dword [esp + 0x14], edx
mov edx, dword [esi + 4]
xor edx, ecx
mov dword [esi + 0x24], edx
mov ecx, dword [esi + 8]
xor ecx, edx
mov dword [esi + 0x28], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
cmp dword [esp + 0x18], 0x995384
mov dword [esi + 0x2c], edx
jne 0x99b759
push 0xe
jmp 0x99b4f2
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret