Function at 0x51e330
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51e68d
sub esp, 0x14
mov eax, dword [0x7d1dd8]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
je 0x51e641
mov eax, dword [0x7d1dc0]
cmp ecx, eax
je 0x51e5f5
mov eax, dword [0x7d1df0]
cmp ecx, eax
je 0x51e5a9
mov eax, dword [0x7d1dc8]
cmp ecx, eax
je 0x51e55d
mov eax, dword [0x7d1db8]
cmp ecx, eax
je 0x51e511
mov eax, dword [ecx + 0x54]
mov edx, dword [esp + 0x1c]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x51e3f7
cmp eax, 1
je 0x51e3e1
add eax, 0xfffffffe
cmp eax, 4
jbe 0x51e3cb
mov dword [esp + 0x20], 0
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0
add esp, 0x14
ret
mov dword [esp + 0x20], 2
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp + 0x20], 1
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
cmp eax, 0x17
je 0x51e434
cmp eax, 0x18
je 0x51e41e
cmp eax, 0x19
je 0x51e408
jmp 0x51e3b5
mov dword [esp + 0x20], 0x10
mov byte [esp + 0x24], 1
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp + 0x20], 0x13
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x54]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 4]
cmp eax, 8
je 0x51e4fb
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x64]
mov ecx, dword [esp + 0x1c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
cmp ecx, 3
jl 0x51e4f7
lea edx, [ecx - 3]
cmp edx, ecx
ja 0x51e4f0
sub ecx, edx
lea ebx, [ecx - 1]
sar ebx, 0x1f
xor ebx, 0xffffffff
and edx, ebx
add eax, edx
cmp ecx, 3
je 0x51e4cb
xor eax, eax
test al, al
je 0x51e4b5
mov dword [esp + 0x20], 0x11
mov byte [esp + 0x24], 1
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp + 0x20], 0x10
mov byte [esp + 0x24], 1
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x637e80]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
call dbg.runtime.eqstring
movzx eax, byte [esp + 0x10]
jmp 0x51e49b
call dbg.runtime.panicslice
ud2
xor eax, eax
jmp 0x51e49b
mov dword [esp + 0x20], 4
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov edx, dword [0x7d1dbc]
mov ebx, dword [0x7d1db8]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
jne 0x51e547
mov ecx, dword [esp + 0x18]
jmp 0x51e393
mov dword [esp + 0x20], 2
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov edx, dword [0x7d1dc8]
mov ebx, dword [0x7d1dcc]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
jne 0x51e593
mov ecx, dword [esp + 0x18]
jmp 0x51e385
mov dword [esp + 0x20], 0xa
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov edx, dword [0x7d1df4]
mov ebx, dword [0x7d1df0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
jne 0x51e5df
mov ecx, dword [esp + 0x18]
jmp 0x51e377
mov dword [esp + 0x20], 0x17
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov edx, dword [0x7d1dc4]
mov ebx, dword [0x7d1dc0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
jne 0x51e62b
mov ecx, dword [esp + 0x18]
jmp 0x51e369
mov dword [esp + 0x20], 3
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
mov dword [esp], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov edx, dword [0x7d1ddc]
mov ebx, dword [0x7d1dd8]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
jne 0x51e677
mov ecx, dword [esp + 0x18]
jmp 0x51e35b
mov dword [esp + 0x20], 6
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 1
add esp, 0x14
ret
call dbg.runtime.morestack_noctxt
jmp dbg.encoding/asn1.getUniversalType