Function at 0x4b17b0
Capabilities:
Encrypt data using aes

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4b1af7
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 + 0x24]
mov edi, dword [esp + 0x1c]
xor eax, eax
jmp 0x4b17f8
mov dword [ebx + eax*4], edx
inc eax
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edx, esi
mov esi, dword [esp + 0x24]
cmp eax, ecx
jge 0x4b1852
mov dword [esp + 0x10], eax
shl eax, 2
cmp eax, edx
ja 0x4b1aef
sub edx, eax
sub esi, eax
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and eax, esi
cmp edx, 3
jbe 0x4b1ae3
movzx edx, byte [edi + eax + 3]
movzx esi, byte [edi + eax + 2]
shl esi, 8
or edx, esi
movzx esi, byte [edi + eax + 1]
shl esi, 0x10
or edx, esi
movzx esi, byte [edi + eax]
shl esi, 0x18
or edx, esi
mov eax, dword [esp + 0x10]
cmp eax, ebp
jb 0x4b17e6
jmp 0x4b1adc
jmp 0x4b185e
mov dword [edx + edi*4], ebp
lea eax, [edi + 1]
mov ebx, edx
mov ebp, esi
cmp eax, ebp
jge 0x4b19ae
lea edx, [eax - 1]
cmp edx, ebp
jae 0x4b1ad3
mov edx, dword [ebx + eax*4 - 4]
test ecx, ecx
je 0x4b1ace
mov dword [esp + 0x10], eax
mov esi, edx
cmp ecx, 0xffffffff
je 0x4b188d
cdq
idiv ecx
jmp 0x4b188f
xor edx, edx
test edx, edx
jne 0x4b193d
mov eax, dword [esp + 0x10]
mov edi, eax
cmp ecx, 0xffffffff
je 0x4b18a7
cdq
idiv ecx
jmp 0x4b18a9
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 ebp, esi
mov esi, dword [esp + 0xc]
shr esi, 8
and esi, 0xff
movzx esi, byte [esi + ebx]
shl esi, 8
or ebp, esi
mov esi, dword [esp + 0xc]
and esi, 0xff
movzx esi, byte [esi + ebx]
or esi, ebp
cmp edx, 0x10
jae 0x4b1ac2
lea edx, [0x5ea5b0]
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 0x4b1abb
mov edx, dword [esp + 0x28]
xor ebp, dword [edx + eax*4]
cmp edi, esi
jb 0x4b1854
jmp 0x4b1ab2
cmp ecx, 6
jle 0x4b19a4
cmp edx, 4
jne 0x4b19a4
nop
mov edx, esi
shr esi, 0x18
lea edi, str.cw
movzx esi, byte [esi + edi]
shl esi, 0x18
mov eax, edx
shr edx, 0x10
and edx, 0xff
movzx edx, byte [edx + edi]
shl edx, 0x10
or edx, esi
mov esi, eax
shr eax, 8
and eax, 0xff
movzx ebx, byte [eax + edi]
shl ebx, 8
or edx, ebx
and esi, 0xff
movzx ebx, byte [esi + edi]
or ebx, edx
lea edx, [0x5ea5b0]
mov edi, dword [esp + 0x10]
mov ebp, ebx
lea ebx, str.cw
jmp 0x4b1919
lea edi, str.cw
mov ebx, esi
jmp 0x4b198d
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4b1a9e
mov esi, dword [esp + 0x38]
xor eax, eax
jmp 0x4b1a87
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 0x4b1a82
lea ebp, [edi + ebp - 4]
cmp ebp, ecx
jae 0x4b1aab
mov ebp, dword [ebx + ebp*4]
test eax, eax
jle 0x4b1a74
lea ebx, [eax + 4]
cmp ebx, ecx
jge 0x4b1a74
mov dword [esp + 8], ebp
mov ebx, ebp
shr ebp, 0x18
lea edx, str.cw
movzx ebp, byte [edx + ebp]
lea esi, [0x5f4440]
mov ebp, dword [esi + ebp*4]
shr ebx, 0x10
and ebx, 0xff
movzx ebx, byte [edx + ebx]
xor ebp, dword [ebx*4 + 0x5f4840]
mov ebx, dword [esp + 8]
shr ebx, 8
and ebx, 0xff
movzx ebx, byte [edx + ebx]
xor ebp, dword [ebx*4 + 0x5f4c40]
mov ebx, dword [esp + 8]
and ebx, 0xff
movzx ebx, byte [ebx + edx]
xor ebp, dword [ebx*4 + 0x5f5040]
lea ebx, [edi + eax]
mov esi, dword [esp + 0x38]
cmp ebx, esi
jb 0x4b19c5
jmp 0x4b1aa2
lea edx, str.cw
lea esi, [0x5f4440]
jmp 0x4b1a63
add eax, 4
mov ebp, ecx
cmp eax, ebp
jge 0x4b1a9a
mov ecx, ebp
sub ebp, eax
mov dword [esp + 0x14], ebp
xor edi, edi
jmp 0x4b19e3
add esp, 0x18
ret
add esp, 0x18
ret
mov eax, ebx
mov ecx, esi
call fcn.00455fa0
mov eax, ebp
call fcn.00455fa0
mov eax, edi
mov ecx, esi
call fcn.00455fa0
mov ecx, esi
call fcn.00455fa0
mov eax, edx
mov ecx, 0x10
call fcn.00455fa0
call fcn.0042c630
mov eax, edx
mov ecx, ebp
call fcn.00455fa0
mov ecx, ebp
call fcn.00455fa0
mov eax, 3
mov ecx, edx
call fcn.00455fa0
mov ecx, edx
call fcn.00456000
nop
call fcn.004546e0
jmp fcn.004b17b0