Function at 0x140025460
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x1e8
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], rcx
mov byte [rsp + 0xcf], r8b
mov rax, qword [rsp + 0xc0]
mov cl, byte [rsp + 0xcf]
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0x120], rdx
and cl, 1
mov byte [rsp + 0xa7], cl
mov byte [rsp + 0x11f], cl
mov qword [rsp + 0x110], 0
mov rax, qword [rax + 8]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x108], 0
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x98], rax
cmp rax, rcx
jge 0x140025bd5
mov rdx, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xc0]
mov rcx, rdx
add rcx, qword [r8]
sub rax, rdx
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
mov dword [rsp + 0xf4], 0
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x138], rax
cmp qword [rsp + 0x138], 1
setl al
test al, 1
jne 0x14002555a
jmp 0x140025574
mov dword [rsp + 0xf4], 0xfffd
xor eax, eax
mov qword [rsp + 0x90], rax
jmp 0x140025b57
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x80], rax
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x88], rcx
mov dword [rsp + 0x1e4], 0x213
mov dword [rsp + 0x1e0], 0xa
mov qword [rsp + 0x1d8], 0
mov qword [rsp + 0x1d0], rcx
xor eax, eax
cmp rax, rcx
setb al
test al, 1
jne 0x1400255f1
mov rax, qword [rsp + 0x88]
lea rcx, str.D:_Dev_Odin_base_runtime_internal.odin
mov edx, 0x213
mov r8d, 0xa
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.140036a80
mov rax, qword [rsp + 0x80]
mov al, byte [rax]
mov byte [rsp + 0x137], al
movzx eax, byte [rsp + 0x137]
mov ecx, eax
mov dword [rsp + 0x1cc], 0x214
mov dword [rsp + 0x1c8], 0x14
mov qword [rsp + 0x1c0], rcx
mov qword [rsp + 0x1b8], 0x100
lea rax, [0x140054370]
mov al, byte [rax + rcx]
mov byte [rsp + 0x136], al
cmp byte [rsp + 0x136], 0xf0
setae al
test al, 1
jne 0x14002565b
jmp 0x140025720
movzx eax, byte [rsp + 0x136]
shl eax, 0x1f
sar eax, 0x1f
mov dword [rsp + 0x130], eax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x78], rcx
mov dword [rsp + 0x1b4], 0x217
mov dword [rsp + 0x1b0], 0x11
mov qword [rsp + 0x1a8], 0
mov qword [rsp + 0x1a0], rcx
xor eax, eax
cmp rax, rcx
setb al
test al, 1
jne 0x1400256e4
mov rax, qword [rsp + 0x78]
lea rcx, str.D:_Dev_Odin_base_runtime_internal.odin
mov edx, 0x217
mov r8d, 0x11
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.140036a80
mov rax, qword [rsp + 0x70]
movzx eax, byte [rax]
mov ecx, dword [rsp + 0x130]
xor ecx, 0xffffffff
and eax, ecx
mov ecx, dword [rsp + 0x130]
and ecx, 0xfffd
or eax, ecx
mov dword [rsp + 0xf4], eax
mov eax, 1
mov qword [rsp + 0x90], rax
jmp 0x140025b57
mov al, byte [rsp + 0x136]
and al, 7
mov byte [rsp + 0x12f], al
mov al, byte [rsp + 0x136]
shr al, 4
movzx eax, al
mov qword [rsp + 0x60], rax
lea rcx, [0x140054470]
mov rdx, rax
shl rdx, 1
add rcx, rdx
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x19c], 0x21a
mov dword [rsp + 0x198], 0x1a
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x188], 5
cmp rax, 5
setb al
test al, 1
jne 0x1400257b1
mov r9, qword [rsp + 0x60]
lea rcx, str.D:_Dev_Odin_base_runtime_internal.odin
mov edx, 0x21a
mov r8d, 0x1a
mov qword [rsp + 0x20], 5
call fcn.140036a80
mov rcx, qword [rsp + 0x68]
mov al, byte [rcx]
mov cl, byte [rcx + 1]
mov byte [rsp + 0x12e], cl
mov byte [rsp + 0x12d], al
mov rax, qword [rsp + 0x138]
movzx ecx, byte [rsp + 0x12f]
cmp rax, rcx
setl al
test al, 1
jne 0x1400257e5
jmp 0x140025802
mov dword [rsp + 0xf4], 0xfffd
mov eax, 1
mov qword [rsp + 0x90], rax
jmp 0x140025b57
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x184], 0x21e
mov dword [rsp + 0x180], 0xa
mov qword [rsp + 0x178], 1
mov qword [rsp + 0x170], rcx
mov eax, 1
cmp rax, rcx
setb al
test al, 1
jne 0x14002587c
mov rax, qword [rsp + 0x58]
lea rcx, str.D:_Dev_Odin_base_runtime_internal.odin
mov edx, 0x21e
mov r8d, 0xa
mov r9d, 1
mov qword [rsp + 0x20], rax
call fcn.140036a80
mov rax, qword [rsp + 0x50]
mov al, byte [rax + 1]
mov byte [rsp + 0x12c], al
mov al, byte [rsp + 0x12c]
cmp al, byte [rsp + 0x12d]
setb al
test al, 1
jne 0x1400258b7
mov al, byte [rsp + 0x12e]
cmp al, byte [rsp + 0x12c]
setb al
test al, 1
jne 0x1400258b7
jmp 0x1400258d4
mov dword [rsp + 0xf4], 0xfffd
mov eax, 1
mov qword [rsp + 0x90], rax
jmp 0x140025b57
cmp byte [rsp + 0x12f], 2
sete al
test al, 1
jne 0x1400258e5
jmp 0x14002591c
mov al, byte [rsp + 0x137]
and al, 0x1f
movzx eax, al
shl eax, 6
mov cl, byte [rsp + 0x12c]
and cl, 0x3f
movzx ecx, cl
or eax, ecx
mov dword [rsp + 0xf4], eax
mov eax, 2
mov qword [rsp + 0x90], rax
jmp 0x140025b57
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x16c], 0x225
mov dword [rsp + 0x168], 0xa
mov qword [rsp + 0x160], 2
mov qword [rsp + 0x158], rcx
mov eax, 2
cmp rax, rcx
setb al
test al, 1
jne 0x140025996
mov rax, qword [rsp + 0x48]
lea rcx, str.D:_Dev_Odin_base_runtime_internal.odin
mov edx, 0x225
mov r8d, 0xa
mov r9d, 2
mov qword [rsp + 0x20], rax
call fcn.140036a80
mov rax, qword [rsp + 0x40]
mov al, byte [rax + 2]
mov byte [rsp + 0x12b], al
cmp byte [rsp + 0x12b], 0x80
setb al
test al, 1
jne 0x1400259c6
mov al, 0xbf
cmp al, byte [rsp + 0x12b]
setb al
test al, 1
jne 0x1400259c6
jmp 0x1400259e3
mov dword [rsp + 0xf4], 0xfffd
mov eax, 1
mov qword [rsp + 0x90], rax
jmp 0x140025b57
cmp byte [rsp + 0x12f], 3
sete al
test al, 1
jne 0x1400259f4
jmp 0x140025a3d
mov al, byte [rsp + 0x137]
and al, 0xf
movzx eax, al
shl eax, 0xc
mov cl, byte [rsp + 0x12c]
and cl, 0x3f
movzx ecx, cl
shl ecx, 6
or eax, ecx
mov cl, byte [rsp + 0x12b]
and cl, 0x3f
movzx ecx, cl
or eax, ecx
mov dword [rsp + 0xf4], eax
mov eax, 3
mov qword [rsp + 0x90], rax
jmp 0x140025b57
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x154], 0x22c
mov dword [rsp + 0x150], 0xa
mov qword [rsp + 0x148], 3
mov qword [rsp + 0x140], rcx
mov eax, 3
cmp rax, rcx
setb al
test al, 1
jne 0x140025ab7
mov rax, qword [rsp + 0x38]
lea rcx, str.D:_Dev_Odin_base_runtime_internal.odin
mov edx, 0x22c
mov r8d, 0xa
mov r9d, 3
mov qword [rsp + 0x20], rax
call fcn.140036a80
mov rax, qword [rsp + 0x30]
mov al, byte [rax + 3]
mov byte [rsp + 0x12a], al
cmp byte [rsp + 0x12a], 0x80
setb al
test al, 1
jne 0x140025ae7
mov al, 0xbf
cmp al, byte [rsp + 0x12a]
setb al
test al, 1
jne 0x140025ae7
jmp 0x140025b01
mov dword [rsp + 0xf4], 0xfffd
mov eax, 1
mov qword [rsp + 0x90], rax
jmp 0x140025b57
mov al, byte [rsp + 0x137]
and al, 7
movzx eax, al
shl eax, 0x12
mov cl, byte [rsp + 0x12c]
and cl, 0x3f
movzx ecx, cl
shl ecx, 0xc
or eax, ecx
mov cl, byte [rsp + 0x12b]
and cl, 0x3f
movzx ecx, cl
shl ecx, 6
or eax, ecx
mov cl, byte [rsp + 0x12a]
and cl, 0x3f
movzx ecx, cl
or eax, ecx
mov dword [rsp + 0xf4], eax
mov eax, 4
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x98]
mov r10, qword [rsp + 0x90]
mov r8d, dword [rsp + 0xf4]
mov r9, rcx
add r9, r10
mov qword [rsp + 0x108], r9
mov dword [rsp + 0xdc], r8d
mov qword [rsp + 0xd0], rcx
mov ecx, dword [rsp + 0xdc]
call rax
mov cl, byte [rsp + 0xa7]
cmp al, cl
sete al
and al, 1
cmp al, 0
je 0x140025bd0
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x110], rax
add rsp, 0x1e8
ret
jmp 0x1400254db
mov qword [rsp + 0x110], 0xffffffffffffffff
mov rax, 0xffffffffffffffff
add rsp, 0x1e8
ret