Function at 0x10067ce0
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x18]
mov eax, ebp
shr eax, 2
push esi
mov esi, ecx
mov dword [esp + 0x1c], eax
add eax, 6
mov dword [esi + 0xc], eax
push edi
lea eax, [eax*4 + 4]
push eax
lea ecx, [esi + 0x10]
mov dword [esp + 0x14], esi
call fcn.1006de10
mov ebx, dword [esi + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
add ecx, ecx
add ecx, ecx
sub ecx, ebp
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [ebx + ebp]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp + 3]
mov ecx, eax
and ecx, 3
sub eax, ecx
push eax
push ebx
push ebx
call fcn.10060090
add esp, 0xc
cmp ebp, 0x10
je 0x1006800c
cmp ebp, 0x18
je 0x10067eed
cmp ebp, 0x20
jne 0x1006810e
mov ecx, dword [ebx + 0x1c]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
mov eax, ecx
shr eax, 0x18
mov eax, dword [eax*4 + str.ccccwwww]
and edx, 0xff0000
and eax, 0xff
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
movzx ecx, cl
and edx, 0xff000000
xor eax, edx
mov edx, dword [ecx*4 + str.ccccwwww]
mov ecx, dword [ebx + 4]
and edx, 0xff00
xor eax, edx
xor eax, dword [ebx]
mov esi, 4
xor eax, dword [0x1009b438]
xor ecx, eax
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 8]
xor eax, ecx
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebx + 0xc]
xor ecx, eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], ecx
mov ecx, dword [ebx + 0x2c]
mov edx, ecx
shr edx, 0x10
movzx eax, dl
mov eax, dword [eax*4 + str.ccccwwww]
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff000000
and eax, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff00
xor eax, edx
movzx ecx, cl
mov edx, dword [ecx*4 + str.ccccwwww]
mov ecx, dword [ebx + 0x14]
and edx, 0xff
xor eax, edx
xor eax, dword [ebx + 0x10]
add ebx, 0x20
mov dword [ebx + 0x10], eax
xor ecx, eax
mov eax, dword [ebx - 8]
mov dword [ebx + 0x14], ecx
xor eax, ecx
mov ecx, dword [ebx - 4]
mov dword [ebx + 0x18], eax
xor ecx, eax
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebx + 0x1c]
mov edx, ecx
shr edx, 0x18
mov eax, dword [edx*4 + str.ccccwwww]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff0000
and eax, 0xff
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
movzx ecx, cl
and edx, 0xff000000
xor eax, edx
mov edx, dword [ecx*4 + str.ccccwwww]
and edx, 0xff00
xor eax, edx
xor eax, dword [esi + 0x1009b438]
add esi, 4
xor eax, dword [ebx]
mov dword [ebx + 0x20], eax
mov ecx, dword [ebx + 4]
xor ecx, eax
mov dword [ebx + 0x24], ecx
mov eax, dword [ebx + 8]
xor eax, ecx
mov dword [ebx + 0x28], eax
mov ecx, dword [ebx + 0xc]
xor ecx, eax
cmp esi, 0x1c
mov dword [ebx + 0x2c], ecx
jne 0x10067df0
jmp 0x1006810e
mov ecx, dword [ebx + 0x14]
mov edx, ecx
shr edx, 0x18
mov eax, dword [edx*4 + str.ccccwwww]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff0000
and eax, 0xff
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
movzx ecx, cl
and edx, 0xff000000
xor eax, edx
mov edx, dword [ecx*4 + str.ccccwwww]
mov ecx, dword [ebx + 4]
and edx, 0xff00
xor eax, edx
xor eax, dword [ebx]
mov esi, 4
xor eax, dword [0x1009b438]
xor ecx, eax
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 8]
xor eax, ecx
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebx + 0xc]
xor ecx, eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
lea esp, [esp]
mov eax, dword [ebx + 0x10]
xor eax, dword [ebx + 0x24]
mov edx, dword [ebx + 0x14]
xor edx, eax
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x28], eax
mov ecx, dword [ebx + 0x2c]
add ebx, 0x18
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
mov eax, ecx
shr eax, 0x18
mov eax, dword [eax*4 + str.ccccwwww]
and edx, 0xff0000
and eax, 0xff
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
movzx ecx, cl
and edx, 0xff000000
xor eax, edx
mov edx, dword [ecx*4 + str.ccccwwww]
and edx, 0xff00
xor eax, edx
xor eax, dword [esi + 0x1009b438]
add esi, 4
xor eax, dword [ebx]
mov dword [ebx + 0x18], eax
mov ecx, dword [ebx + 4]
xor ecx, eax
mov dword [ebx + 0x1c], ecx
mov eax, dword [ebx + 8]
xor eax, ecx
mov dword [ebx + 0x20], eax
mov ecx, dword [ebx + 0xc]
xor ecx, eax
cmp esi, 0x20
mov dword [ebx + 0x24], ecx
jne 0x10067f70
jmp 0x1006810e
mov ecx, dword [ebx + 0xc]
mov edx, ecx
shr edx, 0x18
mov eax, dword [edx*4 + str.ccccwwww]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff0000
and eax, 0xff
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff000000
xor eax, edx
movzx edx, cl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff00
xor eax, edx
xor eax, dword [ebx]
mov edx, dword [ebx + 4]
xor eax, dword [0x1009b438]
lea esi, [ebx + 0x10]
xor edx, eax
mov dword [esi], eax
mov eax, dword [ebx + 8]
xor eax, edx
mov dword [ebx + 0x18], eax
xor eax, ecx
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x1c], eax
mov edi, 4
mov ecx, esi
mov edx, dword [ecx + 0xc]
mov ebx, edx
mov eax, edx
shr eax, 0x18
mov eax, dword [eax*4 + str.ccccwwww]
shr ebx, 8
movzx esi, bl
mov esi, dword [esi*4 + str.ccccwwww]
mov ebx, edx
and eax, 0xff
and esi, 0xff0000
xor eax, esi
shr ebx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
movzx esi, bl
mov esi, dword [esi*4 + str.ccccwwww]
and edx, 0xff00
and esi, 0xff000000
xor eax, esi
xor eax, edx
xor eax, dword [edi + 0x1009b438]
lea esi, [ecx + 0x10]
xor eax, dword [ecx]
add edi, 4
mov dword [esi], eax
mov edx, dword [ecx + 4]
xor edx, eax
mov dword [ecx + 0x14], edx
mov eax, dword [ecx + 8]
xor eax, edx
mov dword [ecx + 0x18], eax
mov edx, dword [ecx + 0xc]
xor edx, eax
cmp edi, 0x28
mov dword [ecx + 0x1c], edx
jne 0x10068087
cmp dword [esp + 0x18], 1
jne 0x10068341
mov ebp, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x18]
xor edi, edi
add esi, esi
add esi, esi
je 0x10068172
lea edx, [eax + esi*4 + 8]
lea ecx, [eax + 8]
mov ebp, dword [edx - 8]
mov ebx, dword [ecx - 8]
mov dword [ecx - 8], ebp
mov ebp, dword [edx - 4]
mov dword [edx - 8], ebx
mov ebx, dword [ecx - 4]
mov dword [ecx - 4], ebp
mov ebp, dword [edx]
mov dword [edx - 4], ebx
mov ebx, dword [ecx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [ecx + 4], ebp
mov dword [edx + 4], ebx
add edi, 4
sub esi, 4
add ecx, 0x10
sub edx, 0x10
cmp edi, esi
jb 0x10068132
mov ebp, dword [esp + 0x10]
mov esi, 1
cmp dword [ebp + 0xc], esi
jbe 0x10068341
mov ecx, dword [eax + 0x10]
mov ebx, ecx
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + str.ccccwwww]
shr ecx, 8
and edx, 0xff
mov edx, dword [edx*4 + 0x1009a038]
movzx ecx, cl
mov ecx, dword [ecx*4 + str.ccccwwww]
add eax, 0x10
and ecx, 0xff
shr ebx, 0x10
movzx edi, bl
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff
xor edx, dword [edi*4 + 0x1009a438]
xor edx, dword [ecx*4 + 0x1009a838]
movzx ecx, byte [eax]
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor edx, dword [ecx*4 + 0x1009ac38]
mov ecx, dword [eax + 4]
mov dword [eax], edx
mov ebx, ecx
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + str.ccccwwww]
shr ecx, 8
and edx, 0xff
mov edx, dword [edx*4 + 0x1009a038]
movzx ecx, cl
mov ecx, dword [ecx*4 + str.ccccwwww]
shr ebx, 0x10
and ecx, 0xff
movzx edi, bl
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff
xor edx, dword [edi*4 + 0x1009a438]
xor edx, dword [ecx*4 + 0x1009a838]
movzx ecx, byte [eax + 4]
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor edx, dword [ecx*4 + 0x1009ac38]
mov ecx, dword [eax + 8]
mov dword [eax + 4], edx
mov ebx, ecx
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + str.ccccwwww]
shr ecx, 8
and edx, 0xff
mov edx, dword [edx*4 + 0x1009a038]
shr ebx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + str.ccccwwww]
movzx edi, bl
mov edi, dword [edi*4 + str.ccccwwww]
and edi, 0xff
xor edx, dword [edi*4 + 0x1009a438]
and ecx, 0xff
xor edx, dword [ecx*4 + 0x1009a838]
movzx ecx, byte [eax + 8]
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor edx, dword [ecx*4 + 0x1009ac38]
mov ecx, dword [eax + 0xc]
mov dword [eax + 8], edx
mov ebx, ecx
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + str.ccccwwww]
shr ebx, 0x10
movzx edi, bl
mov edi, dword [edi*4 + str.ccccwwww]
and edx, 0xff
mov edx, dword [edx*4 + 0x1009a038]
and edi, 0xff
xor edx, dword [edi*4 + 0x1009a438]
shr ecx, 8
movzx ecx, cl
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor edx, dword [ecx*4 + 0x1009a838]
movzx ecx, byte [eax + 0xc]
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff
xor edx, dword [ecx*4 + 0x1009ac38]
add esi, 1
mov dword [eax + 0xc], edx
cmp esi, dword [ebp + 0xc]
jb 0x10068180
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc