Function at 0x1012f780
Capabilities:
Encrypt data using aes

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
push edi
test esi, esi
je 0x1012fb38
mov edx, dword [esp + 0x18]
test edx, edx
je 0x1012fb38
mov ebx, dword [esp + 0x14]
cmp ebx, 0x80
je 0x1012f7c8
cmp ebx, 0xc0
je 0x1012f7c0
cmp ebx, 0x100
je 0x1012f7c0
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
ret
cmp ebx, 0x80
jne 0x1012f7d4
mov dword [edx + 0xf0], 0xa
jmp 0x1012f7f2
cmp ebx, 0xc0
jne 0x1012f7e8
mov dword [edx + 0xf0], 0xc
jmp 0x1012f7f2
mov dword [edx + 0xf0], 0xe
mov eax, dword [esi]
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
mov dword [edx], ecx
mov edi, dword [esi + 4]
mov eax, edi
lea ecx, [edx + 4]
ror eax, 8
and eax, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or eax, edi
mov dword [ecx], eax
mov edi, dword [esi + 8]
mov eax, edi
ror eax, 8
and eax, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or eax, edi
mov dword [edx + 8], eax
mov edi, dword [esi + 0xc]
mov eax, edi
ror eax, 8
and eax, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or eax, edi
cmp ebx, 0x80
mov dword [edx + 0xc], eax
jne 0x1012f8fe
mov edi, 0x1014d3f0
mov esi, dword [ecx + 8]
xor eax, eax
mov edx, esi
xor ebx, ebx
mov dword [esp + 0x10], edx
mov al, dh
mov bl, byte [esp + 0x12]
add edi, 4
mov eax, dword [eax*4 + 0x1014bef0]
mov ebx, dword [ebx*4 + 0x1014baf0]
and eax, 0xff0000
and ebx, 0xff000000
xor eax, ebx
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
mov ebx, dword [ebx*4 + 0x1014b6f0]
mov edx, dword [edx*4 + 0x1014b2f0]
and ebx, 0xff
xor eax, ebx
mov ebx, dword [edi - 4]
and edx, 0xff00
xor eax, edx
mov edx, dword [ecx - 4]
xor eax, edx
mov edx, dword [ecx]
xor eax, ebx
mov dword [ecx + 0xc], eax
xor eax, edx
mov edx, dword [ecx + 4]
mov dword [ecx + 0x10], eax
xor edx, eax
mov dword [ecx + 0x14], edx
xor edx, esi
cmp edi, 0x1014d418
mov dword [ecx + 0x18], edx
je 0x1012fb32
add ecx, 0x10
jmp 0x1012f86f
mov edi, dword [esi + 0x10]
mov eax, edi
ror eax, 8
and eax, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or eax, edi
mov dword [edx + 0x10], eax
mov edi, dword [esi + 0x14]
mov eax, edi
ror eax, 8
and eax, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or eax, edi
cmp ebx, 0xc0
mov dword [edx + 0x14], eax
jne 0x1012f9e7
mov esi, 0x1014d3f0
mov edx, dword [ecx + 0x10]
xor eax, eax
mov dword [esp + 0x10], edx
xor ebx, ebx
mov bl, byte [esp + 0x12]
mov al, dh
add esi, 4
mov eax, dword [eax*4 + 0x1014bef0]
mov edi, dword [ebx*4 + 0x1014baf0]
and eax, 0xff0000
and edi, 0xff000000
xor eax, edi
mov edi, edx
shr edi, 0x18
and edx, 0xff
mov ebx, dword [esi - 4]
mov edi, dword [edi*4 + 0x1014b6f0]
mov edx, dword [edx*4 + 0x1014b2f0]
and edi, 0xff
xor eax, edi
and edx, 0xff00
xor eax, edx
mov edx, dword [ecx - 4]
xor eax, edx
mov edx, dword [ecx]
xor eax, ebx
mov dword [ecx + 0x14], eax
xor edx, eax
mov eax, dword [ecx + 4]
mov dword [ecx + 0x18], edx
xor eax, edx
mov edx, dword [ecx + 8]
xor edx, eax
cmp esi, 0x1014d410
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], edx
je 0x1012fb32
mov eax, dword [ecx + 0xc]
mov ebx, edx
mov edx, dword [ecx + 0x10]
xor eax, ebx
xor edx, eax
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x28], edx
add ecx, 0x18
jmp 0x1012f945
mov edi, dword [esi + 0x18]
mov eax, edi
ror eax, 8
and eax, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or eax, edi
mov dword [edx + 0x18], eax
mov esi, dword [esi + 0x1c]
mov eax, esi
ror eax, 8
and eax, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or eax, esi
cmp ebx, 0x100
mov dword [edx + 0x1c], eax
jne 0x1012fb32
mov eax, ecx
mov edi, 0x1014d3f0
mov edx, dword [eax + 0x18]
xor ecx, ecx
mov dword [esp + 0x10], edx
xor ebx, ebx
mov bl, byte [esp + 0x12]
mov cl, dh
add edi, 4
mov ecx, dword [ecx*4 + 0x1014bef0]
mov esi, dword [ebx*4 + 0x1014baf0]
and ecx, 0xff0000
and esi, 0xff000000
xor ecx, esi
mov esi, edx
shr esi, 0x18
and edx, 0xff
mov ebx, dword [edi - 4]
mov esi, dword [esi*4 + 0x1014b6f0]
mov edx, dword [edx*4 + 0x1014b2f0]
and esi, 0xff
xor ecx, esi
and edx, 0xff00
xor ecx, edx
mov edx, dword [eax - 4]
xor ecx, edx
mov edx, dword [eax]
xor ecx, ebx
mov dword [eax + 0x1c], ecx
xor edx, ecx
mov ecx, dword [eax + 4]
mov dword [eax + 0x20], edx
xor ecx, edx
mov edx, dword [eax + 8]
xor edx, ecx
cmp edi, 0x1014d40c
mov dword [eax + 0x24], ecx
mov dword [eax + 0x28], edx
je 0x1012fb32
mov ecx, edx
xor edx, edx
mov dword [esp + 0x10], ecx
mov dl, byte [esp + 0x12]
mov esi, dword [edx*4 + 0x1014bef0]
xor edx, edx
mov dl, ch
and esi, 0xff0000
mov edx, dword [edx*4 + 0x1014b2f0]
and edx, 0xff00
xor esi, edx
mov edx, ecx
shr edx, 0x18
and ecx, 0xff
mov edx, dword [edx*4 + 0x1014baf0]
mov ecx, dword [ecx*4 + 0x1014b6f0]
and edx, 0xff000000
xor esi, edx
mov edx, dword [eax + 0x10]
and ecx, 0xff
xor esi, ecx
mov ecx, dword [eax + 0xc]
xor esi, ecx
mov ecx, dword [eax + 0x14]
xor edx, esi
mov dword [eax + 0x2c], esi
mov dword [eax + 0x30], edx
xor ecx, edx
mov edx, dword [eax + 0x18]
mov dword [eax + 0x34], ecx
xor ecx, edx
mov dword [eax + 0x38], ecx
add eax, 0x20
jmp 0x1012fa30
pop edi
pop esi
xor eax, eax
pop ebx
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
ret