Function at 0x58d7c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword [0x8d0454]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x58d9fe
sub esp, 0x38
mov eax, dword [esp + 0x40]
test eax, eax
je 0x58d857
cmp eax, 1
jne 0x58d7f1
mov edx, dword [esp + 0x3c]
xor ecx, ecx
xor ebx, ebx
jmp 0x58d891
mov edx, dword [esp + 0x3c]
movzx ebx, byte [edx]
test bl, bl
jne 0x58d807
movzx ebp, byte [edx + 1]
xchg ebp, eax
test al, 0x80
xchg ebp, eax
je 0x58d815
cmp bl, 0xff
jne 0x58d851
movzx ebx, byte [edx + 1]
test bl, 0x80
je 0x58d851
lea eax, [0x6c90f9]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0x1d
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call sym.runtime.convTstring
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x3c]
lea ecx, [0x727564]
mov ebx, eax
mov eax, dword [esp + 0x40]
jmp 0x58d891
xor ecx, ecx
xor ebx, ebx
jmp 0x58d891
lea eax, [0x6c101d]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0xd
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call sym.runtime.convTstring
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x3c]
lea ecx, [0x727564]
mov ebx, eax
mov eax, dword [esp + 0x40]
test ecx, ecx
jne 0x58d8f9
cmp eax, 8
jg 0x58d8ad
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ecx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x58d933
lea eax, [0x6c2c57]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x11
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], 0x11
call sym.runtime.convTstring
mov eax, dword [esp + 8]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
lea ecx, [0x727564]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
add esp, 0x38
ret
shl esi, 8
shl edi, 8
mov ebx, dword [esp + 0x18]
shr ebx, 0x18
movzx ecx, byte [edx + ebp]
inc ebp
or edi, ebx
or esi, ecx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
cmp eax, ebp
jg 0x58d915
shl eax, 3
lea edx, [eax - 0x40]
neg edx
mov byte [esp + 0xf], dl
mov ecx, edx
shl edi, cl
shl esi, cl
add eax, 0xffffffe0
mov byte [esp + 0xe], al
mov ecx, eax
mov ebx, dword [esp + 0x18]
shr ebx, cl
mov dword [esp + 0x14], ebx
neg eax
mov ecx, eax
mov ebp, dword [esp + 0x18]
shl ebp, cl
shr dl, 5
movzx edx, dl
mov dword [esp + 0x18], edx
cmp al, 0x20
sbb ebx, ebx
sbb edx, edx
and ebp, ebx
not edx
or edx, eax
mov byte [esp + 0xd], dl
movzx ecx, byte [esp + 0xf]
cmp cl, 0x20
sbb eax, eax
sbb ebx, ebx
and esi, eax
and edi, eax
shr esi, cl
and esi, eax
not ebx
or ecx, ebx
mov eax, dword [esp + 0x18]
cmp eax, 1
sbb eax, eax
xor eax, 0xffffffff
mov dword [esp + 0x18], eax
movzx ebx, byte [esp + 0xe]
cmp bl, 0x20
sbb eax, eax
mov edx, dword [esp + 0x14]
and edx, eax
or edi, edx
or edi, ebp
mov edx, ecx
mov ecx, ebx
mov ebp, edi
shl edi, cl
mov ecx, edx
mov edx, ebp
sar ebp, cl
mov dword [esp + 0x4c], ebp
and edi, eax
or esi, edi
movzx ecx, byte [esp + 0xd]
sar edx, cl
mov eax, dword [esp + 0x18]
and eax, edx
or eax, esi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
add esp, 0x38
ret
call sym.runtime.morestack_noctxt
jmp sym.encoding_asn1.parseInt64