Function at 0x4d37b0
Capabilities:
Encrypt data using aes

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4d3af3
sub esp, 0x14
mov ecx, dword [esp + 0x1c]
mov edx, ecx
shr ecx, 2
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
xor eax, eax
jmp 0x4d380c
mov dword [ebx + edx*4], ecx
lea eax, [edx + 1]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, esi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp eax, ecx
jge 0x4d3867
mov dword [esp + 0xc], eax
shl eax, 2
cmp eax, edx
ja 0x4d3aec
nop
sub edx, eax
sub edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
cmp edx, 3
jbe 0x4d3ae5
movzx edx, byte [esi + eax + 1]
movzx edi, byte [esi + eax]
movzx ecx, byte [esi + eax + 3]
movzx esi, byte [esi + eax + 2]
shl esi, 8
or ecx, esi
shl edx, 0x10
or ecx, edx
shl edi, 0x18
or ecx, edi
mov edx, dword [esp + 0xc]
cmp edx, ebp
jb 0x4d37ea
jmp 0x4d3ade
jmp 0x4d3871
mov dword [ebx + esi*4], ebp
lea eax, [esi + 1]
mov ebp, edx
cmp eax, ebp
jge 0x4d39c4
lea edx, [eax - 1]
cmp edx, ebp
jae 0x4d3ad7
mov edx, dword [ebx + eax*4 - 4]
test ecx, ecx
je 0x4d3ad0
mov dword [esp + 0xc], eax
mov esi, edx
cmp ecx, 0xffffffff
je 0x4d38a0
cdq
idiv ecx
jmp 0x4d38a2
xor edx, edx
test edx, edx
jne 0x4d3953
nop
nop
mov eax, dword [esp + 0xc]
mov edi, eax
cmp ecx, 0xffffffff
je 0x4d38bc
cdq
idiv ecx
jmp 0x4d38be
neg eax
lea edx, [eax - 1]
rol esi, 8
mov dword [esp + 4], esi
shr esi, 0x18
lea ebx, str.cw
movzx esi, byte [esi + ebx]
shl esi, 0x18
mov ebp, dword [esp + 4]
shr ebp, 0x10
and ebp, 0xff
movzx ebp, byte [ebp + ebx]
shl ebp, 0x10
or esi, ebp
mov ebp, dword [esp + 4]
shr ebp, 8
and ebp, 0xff
movzx ebp, byte [ebp + ebx]
shl ebp, 8
or ebp, esi
mov esi, dword [esp + 4]
and esi, 0xff
movzx esi, byte [esi + ebx]
or esi, ebp
cmp edx, 0x10
jae 0x4d3ac9
lea edx, [0x865640]
movzx ebp, byte [eax + edx - 1]
shl ebp, 0x18
xor ebp, esi
mov esi, edi
sub edi, ecx
mov edx, dword [esp + 0x28]
cmp edi, edx
jae 0x4d3ac2
mov ebx, dword [esp + 0x24]
xor ebp, dword [ebx + edi*4]
cmp esi, edx
jb 0x4d3869
jmp 0x4d3ac2
cmp ecx, 6
jle 0x4d39ba
cmp edx, 4
jne 0x4d39ba
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 ebx, edx
lea edx, [0x865640]
mov edi, dword [esp + 0xc]
mov ebp, ebx
lea ebx, str.cw
jmp 0x4d392f
lea edi, str.cw
mov ebx, esi
jmp 0x4d39a3
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4d3ab0
mov ecx, dword [esp + 0x34]
xor edx, edx
jmp 0x4d3a99
mov ecx, dword [esp + 0x30]
mov dword [ecx + ebx*4], ebp
inc edi
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x34]
mov eax, ecx
mov ecx, ebp
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
cmp edi, 4
jge 0x4d3a94
lea ebp, [edi + ebp - 4]
cmp ebp, esi
jae 0x4d3abb
mov ebp, dword [ebx + ebp*4]
test edx, edx
jle 0x4d3a86
lea ebx, [edx + 4]
cmp ebx, esi
jge 0x4d3a86
mov dword [esp], ebp
mov ebx, ebp
shr ebp, 0x18
lea esi, str.cw
movzx ebp, byte [ebp + esi]
lea eax, [0x870340]
mov ebp, dword [eax + ebp*4]
shr ebx, 0x10
and ebx, 0xff
movzx ebx, byte [esi + ebx]
xor ebp, dword [ebx*4 + 0x870740]
mov ebx, dword [esp]
shr ebx, 8
and ebx, 0xff
movzx ebx, byte [ebx + esi]
xor ebp, dword [ebx*4 + 0x870b40]
mov ebx, dword [esp]
and ebx, 0xff
movzx ebx, byte [ebx + esi]
xor ebp, dword [ebx*4 + 0x870f40]
lea ebx, [edi + edx]
cmp ebx, ecx
jb 0x4d39db
jmp 0x4d3ab4
lea eax, [0x870340]
lea esi, str.cw
jmp 0x4d3a79
add edx, 4
mov ebp, esi
cmp edx, ebp
jge 0x4d3aac
mov esi, ebp
sub ebp, edx
mov dword [esp + 0x10], ebp
xor edi, edi
jmp 0x4d39fb
add esp, 0x14
ret
add esp, 0x14
ret
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427350
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427250
ud2
call fcn.0044b940
jmp fcn.004d37b0