Function at 0x539ac0
Capabilities:
Encrypt data using aes

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x539e19
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 0x539b18
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 0x539b72
mov dword [esp + 0x10], eax
shl eax, 2
cmp eax, edx
ja 0x539e11
sub edx, eax
sub edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
cmp edx, 3
jbe 0x539e05
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 0x539af6
jmp 0x539dfe
jmp 0x539b7e
mov dword [edx + edi*4], ebp
lea eax, [edi + 1]
mov ebx, edx
mov ebp, esi
cmp eax, ebp
jge 0x539ccf
lea edx, [eax - 1]
cmp edx, ebp
jae 0x539df5
mov edx, dword [ebx + eax*4 - 4]
test ecx, ecx
je 0x539df0
mov dword [esp + 0x10], eax
mov esi, edx
cmp ecx, 0xffffffff
je 0x539bad
cdq
idiv ecx
jmp 0x539baf
xor edx, edx
test edx, edx
jne 0x539c5e
mov eax, dword [esp + 0x10]
mov edi, eax
cmp ecx, 0xffffffff
je 0x539bc7
cdq
idiv ecx
jmp 0x539bc9
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 0x539de4
lea edx, [0xd81a00]
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 0x539ddd
mov edx, dword [esp + 0x28]
xor ebp, dword [edx + eax*4]
cmp edi, esi
jb 0x539b74
jmp 0x539dd4
cmp ecx, 6
jle 0x539cc5
cmp edx, 4
jne 0x539cc5
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, [0xd81a00]
jmp 0x539c3a
lea edi, str.cw
mov edx, esi
jmp 0x539cae
mov edx, dword [esp + 0x34]
test edx, edx
je 0x539dc0
mov esi, dword [esp + 0x38]
xor eax, eax
jmp 0x539da9
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 0x539da4
lea ebp, [edi + ebp - 4]
cmp ebp, ecx
jae 0x539dcd
mov ebp, dword [ebx + ebp*4]
test eax, eax
jle 0x539d96
lea ebx, [eax + 4]
cmp ebx, ecx
jge 0x539d96
mov dword [esp + 8], ebp
mov ebx, ebp
shr ebp, 0x18
lea edx, str.cw
movzx ebp, byte [ebp + edx]
lea esi, [0xd90a20]
mov ebp, dword [esi + ebp*4]
shr ebx, 0x10
and ebx, 0xff
movzx ebx, byte [edx + ebx]
xor ebp, dword [ebx*4 + 0xd90e20]
mov ebx, dword [esp + 8]
shr ebx, 8
and ebx, 0xff
movzx ebx, byte [ebx + edx]
xor ebp, dword [ebx*4 + 0xd91220]
mov ebx, dword [esp + 8]
and ebx, 0xff
movzx ebx, byte [ebx + edx]
xor ebp, dword [ebx*4 + 0xd91620]
lea ebx, [edi + eax]
mov esi, dword [esp + 0x38]
cmp ebx, esi
jb 0x539ce6
jmp 0x539dc4
lea edx, str.cw
lea esi, [0xd90a20]
jmp 0x539d85
add eax, 4
mov ebp, ecx
cmp eax, ebp
jge 0x539dbc
mov ecx, ebp
sub ebp, eax
mov dword [esp + 0x14], ebp
xor edi, edi
jmp 0x539d04
add esp, 0x18
ret
add esp, 0x18
ret
mov eax, ebx
mov ecx, esi
call fcn.00457060
mov eax, ebp
call fcn.00457060
mov eax, edi
mov ecx, esi
call fcn.00457060
mov ecx, esi
call fcn.00457060
mov eax, edx
mov ecx, 0x10
call fcn.00457060
call fcn.0042c410
mov eax, edx
mov ecx, ebp
call fcn.00457060
mov ecx, ebp
call fcn.00457060
mov eax, 3
mov ecx, edx
call fcn.00457060
mov ecx, edx
call fcn.004570c0
nop
call fcn.004557a0
jmp fcn.00539ac0