Function at 0x5af5c0
Capabilities:
Encrypt data using rc4 ksa
Enumerate pe sections

Disassembly:
sub esp, 0x48
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
lea esi, [ecx + 0xcfc]
jmp 0x5af5e0
push 0xae
call fcn.005af040
test eax, eax
je 0x5af6c9
push 4
call fcn.005af170
add eax, edi
lea eax, [eax + eax*4]
add eax, eax
movzx edx, byte [eax + eax + 0x713878]
add eax, eax
mov byte [esi - 0xa], dl
movzx edx, byte [eax + 0x713879]
mov byte [esi], dl
movzx edx, byte [eax + 0x71387a]
mov byte [esi - 9], dl
movzx edx, byte [eax + 0x71387b]
mov byte [esi + 1], dl
movzx edx, byte [eax + 0x71387c]
mov byte [esi - 8], dl
movzx edx, byte [eax + 0x71387d]
mov byte [esi + 2], dl
movzx edx, byte [eax + 0x71387e]
mov byte [esi - 7], dl
movzx edx, byte [eax + 0x71387f]
mov byte [esi + 3], dl
movzx edx, byte [eax + 0x713880]
mov byte [esi - 6], dl
movzx edx, byte [eax + 0x713881]
mov byte [esi + 4], dl
movzx edx, byte [eax + 0x713882]
mov byte [esi - 5], dl
movzx edx, byte [eax + 0x713883]
mov byte [esi + 5], dl
movzx edx, byte [eax + 0x713884]
mov byte [esi - 4], dl
movzx edx, byte [eax + 0x713885]
mov byte [esi + 6], dl
movzx edx, byte [eax + 0x713886]
mov byte [esi - 3], dl
movzx edx, byte [eax + 0x713887]
mov byte [esi + 7], dl
movzx edx, byte [eax + 0x713888]
mov byte [esi - 2], dl
movzx edx, byte [eax + 0x713889]
mov byte [esi + 8], dl
movzx edx, byte [eax + 0x71388a]
mov byte [esi - 1], dl
mov al, byte [eax + 0x71388b]
mov byte [esi + 9], al
push 0xfe
call fcn.005af040
test eax, eax
je 0x5af7b6
xor ebp, ebp
lea ecx, [ecx]
xor edi, edi
push 0xcd
call fcn.005af040
test eax, eax
je 0x5af79a
call fcn.005af0f0
push 0xab
mov ebx, eax
call fcn.005af040
test eax, eax
je 0x5af758
push 0xc7
call fcn.005af040
test eax, eax
je 0x5af71e
push 7
call fcn.005af170
push 0x8c
call fcn.005af040
test eax, eax
je 0x5af733
mov eax, 0xc
jmp 0x5af769
push 0x7d
call fcn.005af040
test eax, eax
je 0x5af745
mov eax, 0x10
jmp 0x5af769
push 0x68
call fcn.005af040
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 0x18
jmp 0x5af769
push 0x53
call fcn.005af040
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 8
test ebx, ebx
je 0x5af76f
neg eax
mov edx, dword [esp + 0x10]
add edx, edi
lea edx, [edx + edx*4]
lea edx, [ebp + edx*2]
add byte [edx + ecx + 0xcf2], al
movzx eax, byte [edx + ecx + 0xcf2]
mov al, byte [eax + 0x725500]
lea edx, [edx + ecx + 0xcf2]
mov byte [edx], al
add edi, 1
cmp edi, 2
jl 0x5af6e2
add ebp, 1
cmp ebp, 0xa
jl 0x5af6e0
mov edi, dword [esp + 0x14]
add dword [esp + 0x10], 2
add edi, 0x10
add esi, 0x14
cmp edi, 0x30
mov dword [esp + 0x14], edi
jl 0x5af5e0
lea edx, [ecx + 0x9ea]
mov dword [esp + 0x14], edx
lea eax, [ecx + 0xa09]
lea edi, [ecx + 0xcfe]
mov dword [esp + 0x20], 3
lea esp, [esp]
movzx ecx, byte [edi - 2]
movzx edx, byte [edi - 1]
imul ecx, ecx, 0x64
imul edx, edx, 0x64
mov dword [esp + 0x30], ecx
movzx ecx, byte [edi]
mov dword [esp + 0x34], edx
imul ecx, ecx, 0x64
movzx edx, byte [edi + 1]
imul edx, edx, 0x64
mov dword [esp + 0x38], ecx
movzx ecx, byte [edi + 2]
mov dword [esp + 0x3c], edx
imul ecx, ecx, 0x64
movzx edx, byte [edi + 3]
imul edx, edx, 0x64
mov dword [esp + 0x40], ecx
movzx ecx, byte [edi + 4]
mov dword [esp + 0x44], edx
imul ecx, ecx, 0x64
movzx edx, byte [edi + 5]
imul edx, edx, 0x64
mov dword [esp + 0x48], ecx
movzx ecx, byte [edi + 6]
mov dword [esp + 0x4c], edx
imul ecx, ecx, 0x64
movzx edx, byte [edi + 7]
imul edx, edx, 0x64
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
xor esi, esi
mov ecx, eax
movzx eax, byte [edi + esi - 0xc]
movzx edx, byte [edi + esi - 2]
lea ebx, [edx + eax + 1]
imul eax, eax, 0xff
cdq
idiv ebx
or dl, 0xff
mov dword [esp + esi*4 + 0x30], 0
mov ebp, dword [esp + 0x34]
sub dl, al
mov eax, dword [esp + 0x14]
mov byte [eax + esi], dl
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
lea ebx, [edx + eax]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x4c]
add edx, ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
add edx, ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x18], eax
add eax, ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
add edx, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
add edx, ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x28], edx
add edx, ebp
lea ebp, [edx + eax + 1]
imul eax, eax, 0xff
mov dword [esp + 0x24], edx
cdq
idiv ebp
mov edx, dword [esp + 0x18]
add edx, ebx
lea ebp, [edx + 1]
add al, 1
mov byte [ecx - 1], al
mov eax, ebx
imul eax, eax, 0xff
cdq
idiv ebp
mov edx, dword [esp + 0x24]
lea ebp, [edx + 1]
add ebx, 1
add al, 1
mov byte [ecx], al
mov eax, dword [esp + 0x10]
imul eax, eax, 0xff
cdq
idiv ebp
add al, 1
mov byte [ecx + 1], al
mov eax, dword [esp + 0x30]
imul eax, eax, 0xff
cdq
idiv ebx
mov edx, dword [esp + 0x18]
lea ebx, [edx + 1]
add al, 1
mov byte [ecx + 2], al
mov eax, dword [esp + 0x3c]
imul eax, eax, 0xff
cdq
idiv ebx
mov edx, dword [esp + 0x10]
lea ebx, [edx + 1]
add al, 1
mov byte [ecx + 3], al
mov eax, dword [esp + 0x34]
imul eax, eax, 0xff
cdq
idiv ebx
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
add al, 1
mov byte [ecx + 4], al
mov eax, ebx
imul eax, eax, 0xff
lea ebp, [edx + 1]
cdq
idiv ebp
add ebx, 1
add esi, 1
add ecx, 9
add al, 1
mov byte [ecx - 4], al
mov eax, dword [esp + 0x44]
imul eax, eax, 0xff
cdq
idiv ebx
mov edx, dword [esp + 0x2c]
lea ebx, [edx + 1]
add al, 1
mov byte [ecx - 3], al
mov eax, dword [esp + 0x50]
imul eax, eax, 0xff
cdq
idiv ebx
add al, 1
mov byte [ecx - 2], al
movzx eax, byte [edi + esi - 3]
imul eax, eax, 0x64
cmp esi, 0xa
mov dword [esp + esi*4 + 0x2c], eax
jl 0x5af861
add dword [esp + 0x14], 0xa
add edi, 0x14
sub dword [esp + 0x20], 1
mov eax, ecx
jne 0x5af7f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret