Function at 0x599760
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 0x599780
push 0xae
call fcn.005991e0
test eax, eax
je 0x599869
push 4
call fcn.00599310
add eax, edi
lea eax, [eax + eax*4]
add eax, eax
movzx edx, byte [eax + eax + 0x6eed70]
add eax, eax
mov byte [esi - 0xa], dl
movzx edx, byte [eax + 0x6eed71]
mov byte [esi], dl
movzx edx, byte [eax + 0x6eed72]
mov byte [esi - 9], dl
movzx edx, byte [eax + 0x6eed73]
mov byte [esi + 1], dl
movzx edx, byte [eax + 0x6eed74]
mov byte [esi - 8], dl
movzx edx, byte [eax + 0x6eed75]
mov byte [esi + 2], dl
movzx edx, byte [eax + 0x6eed76]
mov byte [esi - 7], dl
movzx edx, byte [eax + 0x6eed77]
mov byte [esi + 3], dl
movzx edx, byte [eax + 0x6eed78]
mov byte [esi - 6], dl
movzx edx, byte [eax + 0x6eed79]
mov byte [esi + 4], dl
movzx edx, byte [eax + 0x6eed7a]
mov byte [esi - 5], dl
movzx edx, byte [eax + 0x6eed7b]
mov byte [esi + 5], dl
movzx edx, byte [eax + 0x6eed7c]
mov byte [esi - 4], dl
movzx edx, byte [eax + 0x6eed7d]
mov byte [esi + 6], dl
movzx edx, byte [eax + 0x6eed7e]
mov byte [esi - 3], dl
movzx edx, byte [eax + 0x6eed7f]
mov byte [esi + 7], dl
movzx edx, byte [eax + 0x6eed80]
mov byte [esi - 2], dl
movzx edx, byte [eax + 0x6eed81]
mov byte [esi + 8], dl
movzx edx, byte [eax + 0x6eed82]
mov byte [esi - 1], dl
mov al, byte [eax + 0x6eed83]
mov byte [esi + 9], al
push 0xfe
call fcn.005991e0
test eax, eax
je 0x599956
xor ebp, ebp
lea ecx, [ecx]
xor edi, edi
push 0xcd
call fcn.005991e0
test eax, eax
je 0x59993a
call fcn.00599290
push 0xab
mov ebx, eax
call fcn.005991e0
test eax, eax
je 0x5998f8
push 0xc7
call fcn.005991e0
test eax, eax
je 0x5998be
push 7
call fcn.00599310
push 0x8c
call fcn.005991e0
test eax, eax
je 0x5998d3
mov eax, 0xc
jmp 0x599909
push 0x7d
call fcn.005991e0
test eax, eax
je 0x5998e5
mov eax, 0x10
jmp 0x599909
push 0x68
call fcn.005991e0
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 0x18
jmp 0x599909
push 0x53
call fcn.005991e0
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 8
test ebx, ebx
je 0x59990f
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 + 0x700730]
lea edx, [edx + ecx + 0xcf2]
mov byte [edx], al
add edi, 1
cmp edi, 2
jl 0x599882
add ebp, 1
cmp ebp, 0xa
jl 0x599880
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 0x599780
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 0x599a01
add dword [esp + 0x14], 0xa
add edi, 0x14
sub dword [esp + 0x20], 1
mov eax, ecx
jne 0x599990
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret