Function at 0x100671d0
Capabilities:
Encode data using add xor sub operations
Encode data using xor
Encrypt data using aes

Disassembly:
sub esp, 0x18
mov eax, dword [ecx + 0x18]
push ebx
mov dword [esp + 0x14], ecx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2c]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
add edi, 4
mov esi, dword [edi + 4]
mov ebx, ecx
mov ebp, edx
ror ebx, 8
rol ecx, 8
ror ebp, 8
rol edx, 8
xor edx, ebp
add edi, 4
mov edi, dword [edi + 4]
and edx, 0xff00ff
xor edx, dword [eax + 4]
mov dword [esp + 0x2c], esi
ror esi, 8
xor edx, ebp
mov ebp, edx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
rol esi, 8
xor esi, edx
mov dword [esp + 0x2c], edi
ror edi, 8
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x2c]
and esi, 0xff00ff
xor esi, dword [eax + 8]
xor ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x10]
rol edi, 8
xor edi, edx
and ecx, 0xff00ff
xor ecx, dword [eax]
and edi, 0xff00ff
xor edi, dword [eax + 0xc]
xor ecx, ebx
xor edi, edx
mov edx, esi
shr edx, 8
mov dword [esp + 0x10], eax
movzx edx, dl
mov edx, dword [edx*4 + 0x10099438]
mov eax, ebp
mov dword [esp + 0x14], ecx
mov ebx, edi
shr eax, 0x10
shr ecx, 0x18
movzx edi, al
xor edx, dword [edi*4 + 0x10099038]
mov eax, dword [esp + 0x10]
xor edx, dword [ecx*4 + 0x10098c38]
movzx ecx, bl
xor edx, dword [ecx*4 + 0x10099838]
mov dword [esp + 0x2c], ebx
xor edx, dword [eax + 0x10]
shr ebx, 8
movzx ecx, bl
mov ecx, dword [ecx*4 + 0x10099438]
mov ebx, esi
shr ebx, 0x10
mov dword [esp + 0x1c], esi
movzx esi, bl
xor ecx, dword [esi*4 + 0x10099038]
movzx esi, byte [esp + 0x14]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebp
shr ebp, 0x18
xor ecx, dword [ebp*4 + 0x10098c38]
xor ecx, dword [esi*4 + 0x10099838]
xor ecx, dword [eax + 0x14]
mov edi, dword [esp + 0x1c]
shr ebx, 0x10
movzx esi, bl
mov esi, dword [esi*4 + 0x10099038]
mov ebx, dword [esp + 0x14]
shr edi, 0x18
xor esi, dword [edi*4 + 0x10098c38]
movzx edi, byte [esp + 0x18]
mov dword [esp + 0x10], esi
shr ebx, 8
movzx esi, bl
mov esi, dword [esi*4 + 0x10099438]
xor dword [esp + 0x10], esi
mov esi, dword [esp + 0x10]
xor esi, dword [edi*4 + 0x10099838]
mov ebx, dword [esp + 0x18]
xor esi, dword [eax + 0x18]
shr ebx, 8
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x2c]
shr esi, 0x18
mov dword [esp + 0x2c], esi
mov esi, dword [esi*4 + 0x10098c38]
movzx edi, bl
xor esi, dword [edi*4 + 0x10099438]
mov ebx, dword [esp + 0x14]
movzx edi, byte [esp + 0x1c]
mov dword [esp + 0x2c], esi
shr ebx, 0x10
movzx esi, bl
mov esi, dword [esi*4 + 0x10099038]
xor dword [esp + 0x2c], esi
mov esi, dword [esp + 0x2c]
xor esi, dword [edi*4 + 0x10099838]
add eax, 0x20
xor esi, dword [eax - 4]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x20]
mov esi, dword [esi + 0xc]
shr esi, 1
sub esi, 1
je 0x100675b2
mov ebp, esi
mov ebx, dword [esp + 0x10]
shr ebx, 8
movzx esi, bl
mov esi, dword [esi*4 + 0x10099438]
mov ebx, ecx
shr ebx, 0x10
movzx edi, bl
xor esi, dword [edi*4 + 0x10099038]
mov ebx, dword [esp + 0x2c]
mov edi, edx
shr edi, 0x18
xor esi, dword [edi*4 + 0x10098c38]
movzx edi, byte [esp + 0x2c]
mov dword [esp + 0x20], esi
xor esi, dword [edi*4 + 0x10099838]
shr ebx, 8
xor esi, dword [eax]
mov dword [esp + 0x14], esi
movzx esi, bl
mov esi, dword [esi*4 + 0x10099438]
mov ebx, dword [esp + 0x10]
shr ebx, 0x10
movzx edi, bl
xor esi, dword [edi*4 + 0x10099038]
mov ebx, dword [esp + 0x2c]
mov edi, ecx
shr edi, 0x18
xor esi, dword [edi*4 + 0x10098c38]
movzx edi, dl
xor esi, dword [edi*4 + 0x10099838]
mov edi, dword [esp + 0x10]
xor esi, dword [eax + 4]
shr ebx, 0x10
mov dword [esp + 0x18], esi
movzx esi, bl
mov esi, dword [esi*4 + 0x10099038]
mov ebx, edx
shr ebx, 8
shr edi, 0x18
xor esi, dword [edi*4 + 0x10098c38]
movzx edi, bl
mov dword [esp + 0x20], esi
xor esi, dword [edi*4 + 0x10099438]
movzx edi, cl
xor esi, dword [edi*4 + 0x10099838]
shr ecx, 8
xor esi, dword [eax + 8]
movzx ecx, cl
shr edx, 0x10
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
movzx edx, dl
shr esi, 0x18
mov ebx, dword [esi*4 + 0x10098c38]
xor ebx, dword [ecx*4 + 0x10099438]
movzx ecx, byte [esp + 0x10]
xor ebx, dword [edx*4 + 0x10099038]
mov esi, dword [esp + 0x18]
xor ebx, dword [ecx*4 + 0x10099838]
mov edx, edi
xor ebx, dword [eax + 0xc]
shr edx, 8
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x10099438]
mov edx, esi
shr edx, 0x10
movzx edx, dl
xor ecx, dword [edx*4 + 0x10099038]
mov edx, dword [esp + 0x14]
shr edx, 0x18
xor ecx, dword [edx*4 + 0x10098c38]
movzx edx, bl
xor ecx, dword [edx*4 + 0x10099838]
mov dword [esp + 0x2c], ebx
xor ecx, dword [eax + 0x10]
mov edx, ecx
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
mov dword [esp + 0x20], edx
mov ecx, dword [ecx*4 + 0x10099438]
mov edx, edi
shr esi, 0x18
shr edx, 0x10
movzx edi, dl
xor ecx, dword [edi*4 + 0x10099038]
mov edi, dword [esp + 0x1c]
xor ecx, dword [esi*4 + 0x10098c38]
movzx esi, byte [esp + 0x14]
xor ecx, dword [esi*4 + 0x10099838]
shr ebx, 0x10
movzx esi, bl
mov esi, dword [esi*4 + 0x10099038]
mov ebx, dword [esp + 0x14]
shr edi, 0x18
xor esi, dword [edi*4 + 0x10098c38]
shr ebx, 8
movzx edi, bl
xor esi, dword [edi*4 + 0x10099438]
movzx edi, byte [esp + 0x18]
xor esi, dword [edi*4 + 0x10099838]
mov ebx, dword [esp + 0x18]
xor esi, dword [eax + 0x18]
xor ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x2c]
shr esi, 0x18
mov edi, esi
mov edi, dword [edi*4 + 0x10098c38]
shr ebx, 8
movzx esi, bl
xor edi, dword [esi*4 + 0x10099438]
mov ebx, dword [esp + 0x14]
shr ebx, 0x10
movzx esi, bl
xor edi, dword [esi*4 + 0x10099038]
movzx esi, byte [esp + 0x1c]
xor edi, dword [esi*4 + 0x10099838]
add eax, 0x20
xor edi, dword [eax - 4]
sub ebp, 1
mov dword [esp + 0x2c], edi
jne 0x100673a1
mov ebx, ecx
shr ebx, 0x10
movzx esi, bl
mov ebx, dword [esp + 0x10]
shr ebx, 8
movzx edi, bl
mov edi, dword [edi*4 + str.ccccwwww]
mov esi, dword [esi*4 + str.ccccwwww]
and edi, 0xff00
mov ebx, dword [esp + 0x10]
shr ebx, 0x10
and esi, 0xff0000
xor esi, edi
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff000000
xor esi, edi
movzx edi, byte [esp + 0x2c]
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff
xor esi, edi
movzx edi, bl
mov ebx, dword [esp + 0x2c]
mov edi, dword [edi*4 + str.ccccwwww]
shr ebx, 8
movzx ebx, bl
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
and edi, 0xff0000
xor edi, ebx
mov ebx, ecx
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
xor edi, ebx
movzx ebx, dl
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff
xor edi, ebx
mov ebx, dword [esp + 0x2c]
shr ebx, 0x10
movzx ebx, bl
mov ebp, dword [ebx*4 + str.ccccwwww]
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
and ebp, 0xff0000
xor ebp, ebx
mov ebx, edx
shr ebx, 8
movzx ebx, bl
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor ebp, ebx
movzx ebx, cl
mov ebx, dword [ebx*4 + str.ccccwwww]
xor esi, dword [eax]
xor edi, dword [eax + 4]
and ebx, 0xff
shr edx, 0x10
xor ebp, ebx
mov ebx, dword [esp + 0x2c]
xor ebp, dword [eax + 8]
shr ecx, 8
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
movzx ecx, cl
mov ecx, dword [ecx*4 + str.ccccwwww]
shr ebx, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and edx, 0xff0000
and ecx, 0xff00
and ebx, 0xff000000
xor edx, ebx
xor edx, ecx
movzx ecx, byte [esp + 0x10]
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor edx, ecx
xor edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push edx
push ebp
push edi
mov dword [esp + 0x30], ecx
push esi
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], eax
call fcn.10067170
mov ecx, eax
call fcn.10067170
mov ecx, eax
call fcn.10067170
mov ecx, eax
call fcn.10067170
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0xc