Function at 0x538fe0
Capabilities:
Encrypt data using aes

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x539339
sub esp, 0x18
mov ecx, dword [esp + 0x20]
mov edx, ecx
shr ecx, 2
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
xor eax, eax
jmp 0x539038
mov edx, dword [esp + 0x28]
mov dword [edx + eax*4], ebx
inc eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov edx, edi
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
cmp eax, ecx
jge 0x539092
mov dword [esp + 0x10], eax
shl eax, 2
cmp eax, edx
ja 0x539331
sub edx, eax
sub edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
cmp edx, 3
jbe 0x539325
movzx edx, byte [esi + eax + 1]
movzx edi, byte [esi + eax]
movzx ebx, byte [esi + eax + 3]
movzx esi, byte [esi + eax + 2]
shl esi, 8
or ebx, esi
shl edx, 0x10
or ebx, edx
shl edi, 0x18
or ebx, edi
mov eax, dword [esp + 0x10]
cmp eax, ebp
jb 0x539016
jmp 0x53931e
jmp 0x53909e
mov dword [edx + edi*4], ebp
lea eax, [edi + 1]
mov ebx, edx
mov ebp, esi
cmp eax, ebp
jge 0x5391ef
lea edx, [eax - 1]
cmp edx, ebp
jae 0x539315
mov edx, dword [ebx + eax*4 - 4]
test ecx, ecx
je 0x539310
mov dword [esp + 0x10], eax
mov esi, edx
cmp ecx, 0xffffffff
je 0x5390cd
cdq
idiv ecx
jmp 0x5390cf
xor edx, edx
test edx, edx
jne 0x53917e
mov eax, dword [esp + 0x10]
mov edi, eax
cmp ecx, 0xffffffff
je 0x5390e7
cdq
idiv ecx
jmp 0x5390e9
neg eax
lea edx, [eax - 1]
rol esi, 8
mov dword [esp + 0xc], esi
shr esi, 0x18
lea ebx, str.cw
movzx esi, byte [esi + ebx]
shl esi, 0x18
mov ebp, dword [esp + 0xc]
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [ebp + ebx]
shl ebp, 0x10
or esi, ebp
mov ebp, dword [esp + 0xc]
shr ebp, 8
and ebp, 0xff
movzx ebp, byte [ebp + ebx]
shl ebp, 8
or ebp, esi
mov esi, dword [esp + 0xc]
and esi, 0xff
movzx esi, byte [esi + ebx]
or esi, ebp
cmp edx, 0x10
jae 0x539304
lea edx, [0xe11ad0]
movzx ebp, byte [eax + edx - 1]
shl ebp, 0x18
xor ebp, esi
mov eax, edi
sub eax, ecx
mov esi, dword [esp + 0x2c]
cmp eax, esi
jae 0x5392fd
mov edx, dword [esp + 0x28]
xor ebp, dword [edx + eax*4]
cmp edi, esi
jb 0x539094
jmp 0x5392f4
cmp ecx, 6
jle 0x5391e5
cmp edx, 4
jne 0x5391e5
nop
mov edx, esi
shr esi, 0x18
lea edi, str.cw
movzx esi, byte [edi + esi]
shl esi, 0x18
mov eax, edx
shr edx, 0x10
and edx, 0xff
movzx edx, byte [edx + edi]
shl edx, 0x10
or esi, edx
mov edx, eax
shr eax, 8
and eax, 0xff
movzx ebx, byte [eax + edi]
shl ebx, 8
or ebx, esi
and edx, 0xff
movzx edx, byte [edx + edi]
or edx, ebx
lea ebx, str.cw
mov edi, dword [esp + 0x10]
mov ebp, edx
lea edx, [0xe11ad0]
jmp 0x53915a
lea edi, str.cw
mov edx, esi
jmp 0x5391ce
mov edx, dword [esp + 0x34]
test edx, edx
je 0x5392e0
mov esi, dword [esp + 0x38]
xor eax, eax
jmp 0x5392c9
mov esi, dword [esp + 0x34]
mov dword [esi + ebx*4], ebp
inc edi
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
mov edx, esi
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
cmp edi, 4
jge 0x5392c4
lea ebp, [edi + ebp - 4]
cmp ebp, ecx
jae 0x5392ed
mov ebp, dword [ebx + ebp*4]
test eax, eax
jle 0x5392b6
lea ebx, [eax + 4]
cmp ebx, ecx
jge 0x5392b6
mov dword [esp + 8], ebp
mov ebx, ebp
shr ebp, 0x18
lea edx, str.cw
movzx ebp, byte [ebp + edx]
lea esi, [0xe21d60]
mov ebp, dword [esi + ebp*4]
shr ebx, 0x10
and ebx, 0xff
movzx ebx, byte [edx + ebx]
xor ebp, dword [ebx*4 + 0xe22160]
mov ebx, dword [esp + 8]
shr ebx, 8
and ebx, 0xff
movzx ebx, byte [ebx + edx]
xor ebp, dword [ebx*4 + 0xe22560]
mov ebx, dword [esp + 8]
and ebx, 0xff
movzx ebx, byte [ebx + edx]
xor ebp, dword [ebx*4 + 0xe22960]
lea ebx, [edi + eax]
mov esi, dword [esp + 0x38]
cmp ebx, esi
jb 0x539206
jmp 0x5392e4
lea edx, str.cw
lea esi, [0xe21d60]
jmp 0x5392a5
add eax, 4
mov ebp, ecx
cmp eax, ebp
jge 0x5392dc
mov ecx, ebp
sub ebp, eax
mov dword [esp + 0x14], ebp
xor edi, edi
jmp 0x539224
add esp, 0x18
ret
add esp, 0x18
ret
mov eax, ebx
mov ecx, esi
call fcn.00456b30
mov eax, ebp
call fcn.00456b30
mov eax, edi
mov ecx, esi
call fcn.00456b30
mov ecx, esi
call fcn.00456b30
mov eax, edx
mov ecx, 0x10
call fcn.00456b30
call fcn.0042c070
mov eax, edx
mov ecx, ebp
call fcn.00456b30
mov ecx, ebp
call fcn.00456b30
mov eax, 3
mov ecx, edx
call fcn.00456b30
mov ecx, edx
call fcn.00456b90
nop
call fcn.00455270
jmp fcn.00538fe0