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

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov esi, dword [esp + 0x18]
mov eax, 0xffffffff
test esi, esi
je 0x43312e
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x43312e
mov edi, dword [esp + 0x1c]
cmp edi, 0x80
je 0x432e6e
cmp edi, 0x100
je 0x432e75
mov eax, 0xfffffffe
cmp edi, 0xc0
jne 0x43312e
mov eax, 0xc
jmp 0x432e7a
mov eax, 0xa
jmp 0x432e7a
mov eax, 0xe
mov dword [ecx + 0xf0], eax
cmp edi, 0x80
mov edx, dword [esi]
bswap edx
mov dword [ecx], edx
mov eax, dword [esi + 4]
bswap eax
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
bswap eax
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
bswap eax
mov dword [ecx + 0xc], eax
jne 0x432f3f
mov eax, 0xffffffd8
nop
mov ebx, dword [ecx + eax*4 + 0xac]
movzx edi, bh
mov esi, ebx
movzx edi, byte [edi*4 + 0x527ff2]
shr esi, 0xe
and esi, 0x3fc
movzx esi, byte [esi + 0x527bf3]
shl edi, 0x10
xor edi, edx
movzx edx, bl
movzx ebp, byte [edx*4 + str.cc]
mov edx, ebx
shl esi, 0x18
shr edx, 0x18
movzx edx, byte [edx*4 + 0x5277f0]
shl ebp, 8
xor ebp, edi
xor edx, ebp
xor edx, esi
xor edx, dword [eax + 0x529518]
mov dword [ecx + eax*4 + 0xb0], edx
mov esi, dword [ecx + eax*4 + 0xa4]
xor esi, edx
mov dword [ecx + eax*4 + 0xb4], esi
xor esi, dword [ecx + eax*4 + 0xa8]
mov dword [ecx + eax*4 + 0xb8], esi
xor esi, ebx
mov dword [ecx + eax*4 + 0xbc], esi
add eax, 4
jne 0x432eb0
jmp 0x43312c
mov eax, dword [esi + 0x10]
cmp edi, 0xc0
bswap eax
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x14]
bswap eax
mov dword [ecx + 0x14], eax
jne 0x432fef
add ecx, 0x2c
mov eax, 0xffffffe4
jmp 0x432f80
xor esi, dword [ecx - 0x1c]
add eax, 4
mov dword [ecx - 4], esi
xor esi, ebx
mov dword [ecx], esi
add ecx, 0x18
mov ebx, dword [ecx - 0x18]
movzx edi, bh
mov esi, ebx
movzx edi, byte [edi*4 + 0x527ff2]
shr esi, 0xe
and esi, 0x3fc
movzx esi, byte [esi + 0x527bf3]
shl edi, 0x10
xor edi, edx
movzx edx, bl
movzx ebp, byte [edx*4 + str.cc]
mov edx, ebx
shl esi, 0x18
shr edx, 0x18
movzx edx, byte [edx*4 + 0x5277f0]
shl ebp, 8
xor ebp, edi
xor edx, ebp
xor edx, esi
xor edx, dword [eax + 0x52950c]
mov dword [ecx - 0x14], edx
mov esi, dword [ecx - 0x28]
xor esi, edx
mov dword [ecx - 0x10], esi
xor esi, dword [ecx - 0x24]
mov dword [ecx - 0xc], esi
xor esi, dword [ecx - 0x20]
test eax, eax
mov dword [ecx - 8], esi
jne 0x432f70
jmp 0x43312c
mov eax, dword [esi + 0x18]
bswap eax
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x1c]
bswap eax
mov dword [ecx + 0x1c], eax
xor eax, eax
cmp edi, 0x100
jne 0x43312e
mov esi, 0xffffffe8
jmp 0x43309b
mov ebx, eax
movzx ebp, ah
shr ebx, 0x18
movzx ebp, byte [ebp*4 + str.cc]
movzx edi, byte [ebx*4 + 0x527bf3]
mov ebx, eax
movzx eax, al
shr ebx, 0xe
movzx eax, byte [eax*4 + 0x5277f0]
and ebx, 0x3fc
movzx ebx, byte [ebx + 0x527ff2]
shl ebp, 8
shl edi, 0x18
xor edi, dword [ecx + esi*8 + 0xd0]
shl ebx, 0x10
xor ebp, ebx
xor eax, ebp
xor eax, edi
mov dword [ecx + esi*8 + 0xf0], eax
xor eax, dword [ecx + esi*8 + 0xd4]
mov dword [ecx + esi*8 + 0xf4], eax
xor eax, dword [ecx + esi*8 + 0xd8]
mov dword [ecx + esi*8 + 0xf8], eax
xor eax, dword [esp]
mov dword [ecx + esi*8 + 0xfc], eax
add esi, 4
mov eax, dword [ecx + esi*8 + 0xdc]
movzx ebx, ah
mov edi, eax
mov dword [esp], eax
movzx ebx, byte [ebx*4 + 0x527ff2]
shr edi, 0xe
and edi, 0x3fc
movzx edi, byte [edi + 0x527bf3]
shl ebx, 0x10
xor ebx, edx
movzx edx, al
movzx ebp, byte [edx*4 + str.cc]
mov edx, eax
shl edi, 0x18
shr edx, 0x18
movzx edx, byte [edx*4 + 0x5277f0]
shl ebp, 8
xor ebp, ebx
xor edx, ebp
xor edx, edi
xor edx, dword [esi + 0x529508]
mov dword [ecx + esi*8 + 0xe0], edx
mov eax, dword [ecx + esi*8 + 0xc4]
xor eax, edx
mov dword [ecx + esi*8 + 0xe4], eax
xor eax, dword [ecx + esi*8 + 0xc8]
mov dword [ecx + esi*8 + 0xe8], eax
xor eax, dword [ecx + esi*8 + 0xcc]
test esi, esi
mov dword [ecx + esi*8 + 0xec], eax
jne 0x433020
xor eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret