Function at 0x10031bc0
Capabilities:
Encrypt data using aes

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
test esi, esi
push edi
je 0x10031f74
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x10031f74
mov ebx, dword [esp + 0x18]
cmp ebx, 0x80
je 0x10031c0a
cmp ebx, 0xc0
je 0x10031c02
cmp ebx, 0x100
je 0x10031c02
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
ret
cmp ebx, 0x80
jne 0x10031c16
mov dword [edx + 0xf0], 0xa
jmp 0x10031c34
cmp ebx, 0xc0
jne 0x10031c2a
mov dword [edx + 0xf0], 0xc
jmp 0x10031c34
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 0x10031d3f
mov edi, 0x1005c200
mov esi, dword [ecx + 8]
xor eax, eax
mov edx, esi
xor ebx, ebx
mov dword [esp + 0x14], edx
mov al, dh
mov bl, byte [esp + 0x16]
mov ebp, dword [edi]
mov eax, dword [eax*4 + str.ccccwwww]
add edi, 4
mov ebx, dword [ebx*4 + str.ccccwwww]
and eax, 0xff0000
and ebx, 0xff000000
xor eax, ebx
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
mov ebx, dword [ebx*4 + str.ccccwwww]
mov edx, dword [edx*4 + str.ccccwwww]
and ebx, 0xff
xor eax, ebx
and edx, 0xff00
xor eax, edx
mov edx, dword [ecx - 4]
xor eax, edx
mov edx, dword [ecx]
xor eax, ebp
mov dword [ecx + 0xc], eax
xor edx, eax
mov eax, dword [ecx + 4]
mov dword [ecx + 0x10], edx
xor eax, edx
mov dword [ecx + 0x14], eax
xor eax, esi
cmp edi, 0x1005c228
mov dword [ecx + 0x18], eax
je 0x10031f6d
add ecx, 0x10
jmp 0x10031cb1
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 0x10031e25
mov esi, 0x1005c200
mov edi, dword [ecx + 0x10]
xor eax, eax
mov edx, edi
xor ebx, ebx
mov dword [esp + 0x14], edx
mov al, dh
mov bl, byte [esp + 0x16]
add esi, 4
mov eax, dword [eax*4 + str.ccccwwww]
mov ebx, dword [ebx*4 + str.ccccwwww]
and eax, 0xff0000
and ebx, 0xff000000
xor eax, ebx
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
mov ebx, dword [ebx*4 + str.ccccwwww]
mov edx, dword [edx*4 + str.ccccwwww]
and ebx, 0xff
xor eax, ebx
mov ebx, dword [ecx - 4]
and edx, 0xff00
xor eax, edx
mov edx, dword [esi - 4]
xor eax, ebx
xor eax, edx
mov edx, dword [ecx]
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, 0x1005c220
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], edx
je 0x10031f6d
mov eax, dword [ecx + 0xc]
xor eax, edx
mov dword [ecx + 0x24], eax
xor eax, edi
mov dword [ecx + 0x28], eax
add ecx, 0x18
jmp 0x10031d86
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 0x10031f6d
mov eax, ecx
mov ebp, 0x1005c200
mov edi, dword [eax + 0x18]
xor ecx, ecx
mov edx, edi
xor ebx, ebx
mov dword [esp + 0x14], edx
mov cl, dh
mov bl, byte [esp + 0x16]
add ebp, 4
mov ecx, dword [ecx*4 + str.ccccwwww]
mov esi, dword [ebx*4 + str.ccccwwww]
and ecx, 0xff0000
and esi, 0xff000000
mov ebx, dword [ebp - 4]
xor ecx, esi
mov esi, edx
shr esi, 0x18
and edx, 0xff
mov esi, dword [esi*4 + str.ccccwwww]
mov edx, dword [edx*4 + str.ccccwwww]
and esi, 0xff
xor ecx, esi
and edx, 0xff00
mov esi, dword [eax + 4]
xor ecx, edx
mov edx, dword [eax - 4]
xor ecx, edx
mov edx, dword [eax]
xor ecx, ebx
xor edx, ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [eax + 8]
xor esi, edx
xor ecx, esi
cmp ebp, 0x1005c21c
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], esi
mov dword [eax + 0x28], ecx
je 0x10031f6d
mov dword [esp + 0x14], ecx
xor edx, edx
mov dl, byte [esp + 0x16]
mov esi, dword [edx*4 + str.ccccwwww]
xor edx, edx
mov dl, ch
and esi, 0xff0000
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff00
xor esi, edx
mov edx, ecx
shr edx, 0x18
and ecx, 0xff
mov edx, dword [edx*4 + str.ccccwwww]
mov ecx, dword [ecx*4 + str.ccccwwww]
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
xor ecx, edx
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], ecx
xor ecx, edi
mov dword [eax + 0x38], ecx
add eax, 0x20
jmp 0x10031e6e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret