Function at 0x51367a
Capabilities:
Encrypt data using aes
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ebp, dword [esp + 0x78]
mov dword [esp + 4], edx
mov dword [esp + 0x38], ecx
mov edi, ebp
and edi, 0xf
push 0x10
pop ebx
sub ebx, edi
lea ecx, [ebx + ebp]
call fcn.005131ec
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
and dword [esp + 0x2c], 0
cmp eax, ebp
jae 0x5136d0
lea esi, [esp + 0x24]
xor edx, edx
mov ecx, esi
push ebp
call fcn.00513111
pop ecx
mov ecx, eax
call fcn.0041c279
mov eax, esi
mov esi, dword [esi + 4]
mov eax, dword [eax + 8]
jmp 0x5136d4
mov esi, edx
xor eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add eax, esi
push ebp
push dword [esp + 0x78]
push eax
call fcn.00616830
mov edx, dword [esp + 0x28]
add esp, 0xc
add edx, ebp
lea ebp, [esp + 0x24]
or edi, 0xfffffff0
mov dword [ebp + 8], edx
test edi, edi
je 0x513720
cmp edx, dword [esp + 0x24]
jne 0x513715
mov ecx, ebp
call fcn.00513218
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov byte [esi + edx], bl
inc edx
inc edi
mov dword [esp + 0x2c], edx
jmp 0x5136fc
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x30], ecx
mov edi, dword [eax + 4]
mov ebx, dword [eax + 8]
mov esi, dword [eax]
mov dword [esp + 0x44], edi
mov edi, dword [eax + 0xc]
mov al, byte [eax + 0xf0]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x70]
shr al, 1
dec al
mov byte [esp + 0x13], al
cmp edx, 0xf
jbe 0x513cd7
lea eax, [ecx + 0x10]
add edx, 0xfffffff0
mov ebp, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
push 0x10
pop esi
mov edx, esi
push edi
push ebx
call fcn.00513d22
pop eax
pop ecx
mov edx, esi
mov ecx, ebp
push 0x763d44
push 4
pop edi
push edi
push 0
call fcn.00454a64
add esp, 0xc
mov ecx, eax
call fcn.00513614
xor eax, dword [esp + 0x48]
mov edx, esi
mov ecx, ebp
mov dword [esp + 8], eax
push 0x763d54
push 8
pop ebx
push ebx
push edi
call fcn.00454a64
add esp, 0xc
mov ecx, eax
call fcn.00513614
mov ebx, eax
mov edx, esi
mov ecx, ebp
xor ebx, dword [esp + 0x44]
push 0x763d64
push 0xc
pop edi
push edi
push 8
pop eax
push eax
call fcn.00454a64
add esp, 0xc
mov ecx, eax
call fcn.00513614
mov esi, eax
mov dword [esp + 0x20], ebp
mov ecx, ebp
push 0x10
pop edx
push 0x763d74
push 0x10
push edi
call fcn.00454a64
add esp, 0xc
mov ecx, eax
call fcn.00513614
xor esi, dword [esp + 0x40]
xor eax, dword [esp + 0x3c]
mov ebp, esi
push 0xffffffffffffffcc
pop ecx
mov dl, byte [esp + 0x13]
mov dword [esp + 0x18], ecx
mov byte [esp + 3], dl
push 0x3c
pop edx
cmp edx, 4
jbe 0x513cf7
mov edi, ebp
mov dword [esp + 0x54], edx
mov edx, 0xff
mov esi, eax
mov ecx, ebx
mov dword [esp + 0xc], ebx
shr ebx, 0xe
mov dword [esp + 0x14], ebp
shr edi, 8
and esi, edx
and edi, edx
mov edx, dword [edi*4 + 0x761cbc]
mov edi, 0x3fc
and ebx, edi
mov edi, dword [esp + 8]
xor edx, dword [esi*4 + 0x7620bc]
mov esi, edi
shr esi, 0x18
xor edx, dword [ebx + 0x7628bc]
mov ebx, ebp
shr ebx, 0xe
xor edx, dword [esi*4 + 0x7624bc]
mov esi, ecx
mov ecx, 0x3fc
and ebx, ecx
shr esi, 0x18
mov ecx, 0xff
mov ebx, dword [ebx + 0x7628bc]
xor ebx, dword [esi*4 + 0x7624bc]
mov esi, eax
shr esi, 8
and esi, ecx
xor ebx, dword [esi*4 + 0x761cbc]
mov esi, edi
and esi, ecx
mov ecx, 0x3fc
xor ebx, dword [esi*4 + 0x7620bc]
mov esi, ebp
mov ebp, eax
shr eax, 0x18
shr ebp, 0xe
shr esi, 0x18
and ebp, ecx
mov ecx, dword [ebp + 0x7628bc]
mov ebp, 0xff
xor ecx, dword [esi*4 + 0x7624bc]
mov esi, edi
shr edi, 0xe
shr esi, 8
and esi, ebp
xor ecx, dword [esi*4 + 0x761cbc]
mov esi, dword [esp + 0xc]
and esi, ebp
mov ebp, dword [esp + 0x18]
xor ecx, dword [esi*4 + 0x7620bc]
mov esi, 0x3fc
and edi, esi
mov esi, dword [edi + 0x7628bc]
mov edi, 0xff
xor esi, dword [eax*4 + 0x7624bc]
mov eax, dword [esp + 0xc]
shr eax, 8
and eax, edi
xor esi, dword [eax*4 + 0x761cbc]
mov eax, dword [esp + 0x14]
and eax, edi
xor esi, dword [eax*4 + 0x7620bc]
mov eax, dword [esp + 4]
xor edx, dword [eax + ebp*4 + 0xe0]
xor ecx, dword [eax + ebp*4 + 0xe8]
xor ebx, dword [eax + ebp*4 + 0xe4]
xor esi, dword [eax + ebp*4 + 0xec]
mov al, byte [esp + 3]
sub al, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
jb 0x513ab5
test ebp, ebp
je 0x513d06
mov ebp, ecx
mov byte [esp + 3], al
mov eax, esi
mov edx, ecx
mov ecx, 0x3fc
mov dword [esp + 8], ebx
shr ebp, 8
and eax, edi
and ebp, edi
mov edi, dword [ebp*4 + 0x761cbc]
mov ebp, ebx
shr ebp, 0xe
and ebp, ecx
mov ecx, dword [esp + 0x14]
xor edi, dword [eax*4 + 0x7620bc]
mov eax, ecx
shr eax, 0x18
xor edi, dword [ebp + 0x7628bc]
mov ebp, edx
mov edx, 0x3fc
shr ebp, 0xe
and ebp, edx
xor edi, dword [eax*4 + 0x7624bc]
mov eax, ebx
mov ebx, dword [ebp + 0x7628bc]
mov ebp, 0xff
shr eax, 0x18
xor ebx, dword [eax*4 + 0x7624bc]
mov eax, esi
shr eax, 8
and eax, ebp
xor ebx, dword [eax*4 + 0x761cbc]
mov eax, ecx
and eax, ebp
mov ebp, esi
shr esi, 0x18
shr ebp, 0xe
and ebp, edx
mov edx, 0xff
xor ebx, dword [eax*4 + 0x7620bc]
mov eax, dword [esp + 0xc]
mov ebp, dword [ebp + 0x7628bc]
shr eax, 0x18
xor ebp, dword [eax*4 + 0x7624bc]
mov eax, ecx
shr ecx, 0xe
shr eax, 8
and eax, edx
xor ebp, dword [eax*4 + 0x761cbc]
mov eax, dword [esp + 8]
and eax, edx
mov edx, dword [esp + 8]
xor ebp, dword [eax*4 + 0x7620bc]
mov eax, 0x3fc
and ecx, eax
mov eax, dword [ecx + 0x7628bc]
mov ecx, dword [esp + 0x18]
shr edx, 8
xor eax, dword [esi*4 + 0x7624bc]
mov esi, 0xff
and edx, esi
xor eax, dword [edx*4 + 0x761cbc]
mov edx, dword [esp + 0xc]
and edx, esi
xor eax, dword [edx*4 + 0x7620bc]
mov edx, dword [esp + 4]
xor edi, dword [edx + ecx*4 + 0xf0]
xor ebx, dword [edx + ecx*4 + 0xf4]
xor ebp, dword [edx + ecx*4 + 0xf8]
xor eax, dword [edx + ecx*4 + 0xfc]
mov edx, dword [esp + 0x54]
add ecx, 8
mov dword [esp + 0x18], ecx
mov dword [esp + 8], edi
add edx, 0xfffffff8
jmp 0x513837
test ebp, ebp
je 0x513d14
mov edx, 0xff
shr ecx, 8
mov eax, esi
and ecx, edx
and eax, edx
mov edx, 0x3fc
movzx ecx, byte [ecx*4 + str.cc]
movzx eax, byte [eax*4 + 0x7628bc]
shl ecx, 8
or ecx, eax
mov eax, ebx
shr eax, 0xe
and eax, edx
movzx eax, byte [eax + 0x7620be]
shl eax, 0x10
or eax, ecx
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
movzx edi, byte [ecx*4 + 0x761cbf]
xor ecx, ecx
shl edi, 0x18
or edi, eax
mov eax, dword [esp + 4]
xor edi, dword [eax + ebp*4 + 0xf0]
push 4
pop edx
push 0x763da4
push 0x10
pop eax
push eax
push dword [esp + 0x28]
call fcn.00454cb0
add esp, 0xc
mov ecx, eax
push edi
call fcn.00513d52
pop eax
mov ebp, dword [esp + 0xc]
mov eax, ebx
mov edx, 0x3fc
mov edi, dword [esp + 0x14]
shr eax, 0x18
movzx eax, byte [eax*4 + 0x761cbf]
mov ecx, ebp
shr ecx, 0xe
and ecx, edx
shl eax, 0x18
mov edx, 0xff
movzx ecx, byte [ecx + 0x7620be]
shl ecx, 0x10
or ecx, eax
mov eax, esi
shr eax, 8
and eax, edx
movzx eax, byte [eax*4 + str.cc]
shl eax, 8
or eax, ecx
mov ecx, edi
and ecx, edx
movzx edx, byte [ecx*4 + 0x7628bc]
mov ecx, dword [esp + 4]
or edx, eax
mov eax, dword [esp + 0x18]
xor edx, dword [ecx + eax*4 + 0xf4]
mov dword [esp + 8], edx
push 4
pop ecx
push 8
pop edx
push 0x763db4
push 0x10
pop eax
push eax
push dword [esp + 0x28]
call fcn.00454cb0
add esp, 0xc
mov ecx, eax
push dword [esp + 8]
call fcn.00513d52
pop eax
mov ecx, esi
mov edx, 0x3fc
shr ebp, 0x18
shr edi, 8
shr ecx, 0xe
movzx eax, byte [ebp*4 + 0x761cbf]
and ecx, edx
mov edx, 0xff
movzx ecx, byte [ecx + 0x7620be]
and edi, edx
shl eax, 0x18
shl ecx, 0x10
or ecx, eax
movzx eax, byte [edi*4 + str.cc]
shl eax, 8
or eax, ecx
mov ecx, ebx
and ecx, edx
movzx edi, byte [ecx*4 + 0x7628bc]
mov ecx, dword [esp + 4]
or edi, eax
mov eax, dword [esp + 0x18]
xor edi, dword [ecx + eax*4 + 0xf8]
push 8
pop ecx
push 0xc
pop edx
push 0x763dc4
push 0x10
pop eax
push eax
mov ebp, dword [esp + 0x28]
push ebp
call fcn.00454cb0
add esp, 0xc
mov ecx, eax
push edi
call fcn.00513d52
pop eax
mov edx, dword [esp + 0x14]
mov ecx, 0x3fc
shr esi, 0x18
shr ebx, 8
movzx eax, byte [esi*4 + 0x761cbf]
shr edx, 0xe
and edx, ecx
shl eax, 0x18
movzx ecx, byte [edx + 0x7620be]
mov edx, 0xff
and ebx, edx
shl ecx, 0x10
or ecx, eax
movzx eax, byte [ebx*4 + str.cc]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0xc]
and ecx, edx
movzx esi, byte [ecx*4 + 0x7628bc]
mov ecx, dword [esp + 4]
or esi, eax
mov eax, dword [esp + 0x18]
xor esi, dword [ecx + eax*4 + 0xfc]
push 0xc
pop ecx
push 0x10
pop edx
push 0x763dd4
push edx
mov edi, edx
push ebp
call fcn.00454cb0
add esp, 0xc
mov ecx, eax
push esi
call fcn.00513d52
pop eax
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebx, ebp
jmp 0x513769
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
push 4
pop ecx
mov edx, ecx
push 0x763d84
call fcn.0062d3f0
xor ecx, ecx
xor edx, edx
push 0x763de4
call fcn.0062d3f0
xor ecx, ecx
xor edx, edx
push 0x763d94
call fcn.0062d3f0