Function at 0x140155790
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push rsi
sub rsp, 0x120
mov qword [rsp + 0x108], rcx
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
call fcn.14000efc9
mov qword [rsp + 0x110], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
call fcn.14000efc9
xor eax, eax
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x108]
xorps xmm0, xmm0
movups xmmword [rcx + rax], xmm0
add rax, 0x10
movabs rcx, 0xe4106bf703ccd65
movabs rdx, 0xe4106bf703ccc65
xor rcx, rdx
cmp rax, rcx
mov qword [rsp + 0x118], rax
jne 0x1401557ce
mov rax, qword [rsp + 0x110]
add rax, 0x60
mov qword [rsp + 0xf8], rax
mov ecx, 0x200
call fcn.140094770
mov rcx, rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x100], rcx
cmp byte [rax + 0x60], 0
jne 0x14015634a
mov cx, 0x1ca
call fcn.140094770
mov rcx, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x100]
mov rdx, rax
mov rax, rdx
mov cl, byte [rcx]
test cl, cl
sete cl
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov qword [rsp + 0xf0], rax
jne 0x140155890
jmp 0x14015634a
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0xe8], rax
cmp rax, 0xff
jbe 0x1401558c8
mov rcx, qword [rsp + 0xe8]
xor eax, eax
mov edx, eax
mov r8d, 0xff
call fcn.14003b428
jmp 0x14015634a
mov rax, qword [rsp + 0xe8]
mov dword [rsp + 0xe0], eax
mov ecx, 0xbda3
mov edx, 0xd589
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0xe6], cx
cmp byte [rax], 0
jne 0x14015634a
mov edx, dword [rsp + 0xe0]
mov ax, word [rsp + 0xe6]
mov cx, 0xa9c1
xor cx, 0xa93e
and ax, cx
movzx ecx, ax
mov eax, 0xff
cmp ecx, edx
mov qword [rsp + 0xd8], rax
ja 0x140155a5f
mov ecx, 0xfd49
mov edx, 0x9578
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0xd6], cx
cmp byte [rax], 0
jne 0x14015634a
mov ecx, dword [rsp + 0xe0]
mov ax, word [rsp + 0xd6]
mov dx, 0x610
xor dx, 0x6ef
and ax, dx
movzx edx, ax
mov eax, 0xff
cmp ecx, edx
mov qword [rsp + 0xd8], rax
ja 0x140155a5f
mov ecx, 0x3c5
call fcn.140094770
mov rcx, rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0xc8], rcx
cmp byte [rax], 0
jne 0x14015634a
mov rdx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xe8]
movabs rcx, 0x4299887a21387942
movabs rax, 0xbdf71a58743c4e1b
xor rcx, rax
mov rax, r8
sub rax, rcx
sub rax, rdx
movabs rcx, 0xff6e922255043759
add rax, rcx
mov rcx, rax
xor rcx, r8
cmp rcx, 0
setl cl
mov r9, rax
xor r9, rdx
xor r9, 0xffffffffffffffff
mov r8, rdx
and r8, r9
shl r8, 1
sub r8, rdx
mov rdx, rax
sub rdx, r8
movabs r8, 0xb68b50bc941018ee
movabs r9, 0x4974af436befe711
xor r8, r9
cmp rdx, r8
setg dl
and cl, dl
test cl, 1
mov qword [rsp + 0xd8], rax
jne 0x140155a55
jmp 0x140155a5f
call fcn.14000f24b
jmp 0x14015634a
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0xb8], rax
mov cx, 0xb4af
xor cx, 0xfb12
mov dx, 0x180d
xor dx, 0x3fba
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0xc6], cx
cmp byte [rax], 0
jne 0x14015634a
mov rax, qword [rsp + 0xb8]
mov edx, dword [rsp + 0xe0]
mov cx, word [rsp + 0xc6]
and cx, 0xff
movzx ecx, cx
cmp ecx, edx
mov qword [rsp + 0xb0], rax
ja 0x140155d54
mov cx, 0xa70a
xor cx, 0x1f54
mov dx, 0x5e35
xor dx, 0x8e7a
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0xae], cx
cmp byte [rax], 0
jne 0x14015634a
mov rax, qword [rsp + 0xb8]
mov ecx, dword [rsp + 0xe0]
mov dx, word [rsp + 0xae]
mov r9w, 0xa291
xor r9w, 0xa290
mov r8w, dx
add r8w, r9w
xor dx, 0xffff
or dx, 0xff
add dx, r8w
movzx edx, dx
cmp ecx, edx
mov qword [rsp + 0xb0], rax
ja 0x140155d54
mov ecx, 0x2c8
call fcn.140094770
mov rcx, rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0xa0], rcx
mov al, byte [rax]
mov cl, 0xd7
xor cl, 0xd7
cmp al, cl
jne 0x14015634a
mov r8d, dword [0x14027b5a8]
mov eax, dword [0x14027b5ac]
mov ecx, 0x79243bd2
xor ecx, 0xa9a92310
add r8d, ecx
sub r8d, eax
sub r8d, 0xd08d18c2
mov eax, 0xdc2a2946
xor eax, 0x23d5d6b9
mov ecx, r8d
xor ecx, eax
mov eax, 0x96138e0a
xor eax, 0xac6fa1ab
and eax, ecx
mov edx, 0x344aa187
xor edx, 0xe368e26
mov ecx, 0x3b570202
xor ecx, 0xc4a8fdfd
xor edx, ecx
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0xb77f759a
and ecx, 0x3a7c2fa1
and edx, 0xb77f759a
or eax, r8d
or ecx, edx
xor eax, ecx
add eax, 0x72d2aa32
mov ecx, 0x54fbf46c
xor ecx, 0x8bcd5376
or eax, ecx
cmp eax, 0xae548df7
jbe 0x140156353
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0xe8]
mov eax, dword [0x14027b5b0]
xor eax, dword [0x14027b5b4]
mov ecx, eax
and ecx, 0xa4b6f3d9
mov edx, 0x87299dde
xor edx, 0x78d66221
xor ecx, edx
add eax, 0xa4b6f3d9
add eax, 1
add eax, ecx
sub eax, 0x3c44d7e0
or eax, 0x9d35831d
mov rcx, r9
sub rcx, r8
mov qword [rsp + 0x90], rcx
mov rdx, rcx
and rdx, rdx
xor rdx, 0xffffffffffffffff
movabs r10, 0x25bae049395ae633
movabs r11, 0xda451fb6c6a519cc
xor r10, r11
xor rdx, r10
mov r10, r9
xor r10, 0xffffffffffffffff
or rdx, r10
movabs r11, 0x1aeec78b9f12ec08
movabs r10, 0xe511387460ed13f7
xor r11, r10
mov r10, r9
xor r10, r11
xor r9, 0xffffffffffffffff
or r10, r9
mov r9, rcx
and r9, r10
xor r9, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
or rdx, r9
movabs r9, 0x94bc983072295688
movabs r10, 0x94bc983072295688
xor r9, r10
cmp rdx, r9
setl dl
xor rcx, r8
cmp rcx, 0xffffffffffffffff
setg r8b
mov cl, dl
and cl, r8b
xor cl, 0xff
mov r9b, 1
xor r9b, 0
xor dl, r9b
xor r8b, 0xff
or dl, r8b
xor cl, 0xff
xor dl, 0xff
or cl, dl
mov byte [rsp + 0x9f], cl
cmp eax, 0xbb3a9717
je 0x140155c10
mov rax, qword [rsp + 0x90]
mov cl, byte [rsp + 0x9f]
test cl, 1
mov qword [rsp + 0xb0], rax
jne 0x140155d4a
jmp 0x140155d54
call fcn.14000f24b
jmp 0x14015634a
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x80], rax
mov ecx, 0x6524
mov edx, 0xd7f
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0x8e], cx
cmp byte [rax], 0
jne 0x14015634a
mov rax, qword [rsp + 0x80]
mov edx, dword [rsp + 0xe0]
mov cx, word [rsp + 0x8e]
and cx, 0xff
movzx ecx, cx
cmp ecx, edx
mov qword [rsp + 0x78], rax
ja 0x140155efb
mov ecx, 0xb8d2
mov edx, 0xd080
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0x76], cx
mov al, byte [rax]
mov cl, 0x73
xor cl, 0x73
cmp al, cl
jne 0x14015634a
mov rax, qword [rsp + 0x80]
mov ecx, dword [rsp + 0xe0]
mov dx, word [rsp + 0x76]
and dx, 0xff
movzx edx, dx
cmp ecx, edx
mov qword [rsp + 0x78], rax
ja 0x140155efb
mov ecx, 0x3d
call fcn.140094770
mov rcx, rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x68], rcx
cmp byte [rax], 0
jne 0x14015634a
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0xe8]
mov rax, r9
add rax, r8
movabs rcx, 0x880c854332213bcd
movabs rdx, 0x77f37abccddec432
xor rcx, rdx
mov rdx, rax
xor rdx, rcx
movabs rcx, 0x67447a04a96dedc6
and rdx, rcx
mov r11, 0xffffffffffffffff
movabs rcx, 0x67447a04a96dedc6
xor r11, rcx
mov r10, rax
and r10, r11
mov rcx, r8
xor rcx, 0xffffffffffffffff
movabs rsi, 0x67447a04a96dedc6
and rcx, rsi
and r8, r11
or rdx, r10
or rcx, r8
xor rdx, rcx
mov rcx, rax
and rcx, r9
shl rcx, 1
mov r8, rax
add r8, r9
sub r8, rcx
movabs rcx, 0x9e00c1231f452fbd
movabs r9, 0x61ff3edce0bad042
xor rcx, r9
xor r8, rcx
mov rcx, rdx
xor rcx, r8
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x78], rax
jge 0x140155efb
call fcn.14000f24b
jmp 0x14015634a
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x58], rax
mov cx, 0x6742
xor cx, 0x24e4
mov dx, 0xc919
xor dx, 0xe2ff
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0x66], cx
cmp byte [rax], 0
jne 0x14015634a
mov eax, dword [rsp + 0xe0]
mov dx, word [rsp + 0x66]
mov r8w, 0xff48
xor r8w, 0xffb7
mov cx, 0xbc06
xor cx, 0x43f9
xor r8w, cx
mov cx, dx
xor cx, r8w
and cx, dx
movzx ecx, cx
cmp eax, ecx
je 0x140156068
mov cx, 0x3df
xor cx, 0x74d6
mov dx, 0x393a
xor dx, 0x2675
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0x56], cx
cmp byte [rax], 0
jne 0x14015634a
mov eax, dword [0x14027b5b8]
xor edx, edx
div dword [0x14027b5bc]
mov ecx, eax
mov edx, 0xffffffff
xor edx, 0x6aeef092
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0xb596af40
xor ecx, 0x9fa96449
xor eax, ecx
mov ecx, 0xee91ea19
xor edx, edx
div ecx
cmp eax, 0x1901aae8
ja 0x14015635c
mov edx, dword [rsp + 0xe0]
mov r8w, word [rsp + 0x56]
mov eax, dword [0x14027b5c0]
xor eax, dword [0x14027b5c4]
add eax, 0xe3b90e5e
imul eax, eax, 0x2a05b8b2
mov r9d, 0xffffffff
xor r9d, 0x2a7e7d1e
mov ecx, eax
and ecx, r9d
mov r9d, eax
xor r9d, 0x2a7e7d1e
add eax, r9d
sub eax, ecx
mov ecx, 0x3bdb969
xor ecx, 0x91fd36b7
and r8w, 0xff
movzx r8d, r8w
cmp edx, r8d
sete dl
mov byte [rsp + 0x55], dl
cmp eax, ecx
jae 0x140155fe0
mov rax, qword [rsp + 0x58]
mov cl, byte [rsp + 0x55]
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x140156068
jmp 0x14015608c
mov cx, 0x4def
xor cx, 0x4d42
call fcn.140094770
mov rcx, qword [rsp + 0xf8]
cmp byte [rcx], 0
mov qword [rsp + 0x48], rax
jne 0x14015634a
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
mov ecx, 0x5881
mov edx, 0x30c5
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0x46], cx
cmp byte [rax], 0
jne 0x14015634a
mov eax, dword [0x14027b5c8]
or eax, dword [0x14027b5cc]
mov edx, 0xdb95b3f1
xor edx, 0x400e4635
mov ecx, 0x5c566336
xor ecx, 0xa3a99cc9
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0x9b9bf5c4
add eax, edx
sub eax, ecx
and eax, 0x7e1b1917
and eax, 0x40d22219
cmp eax, 0x1a15c913
jae 0x140156365
mov ecx, dword [rsp + 0xe0]
mov dx, word [rsp + 0x46]
mov eax, dword [0x14027b5d0]
mov r8d, dword [0x14027b5d4]
sub eax, 0xfef40135
sub eax, r8d
add eax, 0xfef40135
mov r8d, 0xea8e8167
xor r8d, 0xcb6b720a
or eax, r8d
mov r8d, 0x22cecf40
xor r8d, 0xb2908ba1
and r8d, eax
mov r9d, 0x211aedf9
xor r9d, 0xdee51206
xor r8d, r9d
mov r9d, 0xd531035
xor r9d, 0x9d0d54d4
add eax, r9d
add eax, 1
add eax, r8d
sub eax, 0x2feb6e07
xor dx, 0xffff
mov r9w, 0xffff
xor r9w, 0xff
mov r8w, 0x5610
xor r8w, 0x7554
mov r10w, 0xd872
xor r10w, 0x278d
xor r8w, r10w
or dx, r9w
or r8w, 0x2344
mov r9w, 0x8c3
xor r9w, 0xf73c
xor dx, r9w
and dx, r8w
movzx edx, dx
cmp ecx, edx
sete cl
mov byte [rsp + 0x37], cl
cmp eax, 0x30d023b
jbe 0x140156107
mov al, byte [rsp + 0x37]
test al, 1
jne 0x140156276
jmp 0x1401561e6
mov cx, 0xd7d1
xor cx, 0x779f
mov dx, 0x8121
xor dx, 0x495b
call fcn.1400993fb
mov cx, ax
mov rax, qword [rsp + 0xf8]
mov word [rsp + 0x34], cx
cmp byte [rax], 0
jne 0x14015634a
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0xe0]
mov r8w, word [rsp + 0x34]
mov r9w, 0xd18d
xor r9w, 0x2e72
mov dx, r8w
xor dx, r9w
mov r9w, 0xffff
xor r9w, 0xff
or dx, r9w
xor r8w, 0xffff
mov r9w, 0xffff
xor r9w, 0xff
or r8w, r9w
and dx, r8w
xor dx, 0xffff
movzx edx, dx
cmp ecx, edx
mov qword [rsp + 0x28], rax
jne 0x140156296
mov ecx, 0xa8
call fcn.140094770
mov rcx, qword [rsp + 0xf8]
cmp byte [rcx], 0
mov qword [rsp + 0x28], rax
jne 0x14015634a
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
movabs rcx, 0xe0b35d8e303cf709
movabs rdx, 0xe0b35d8e303cf7f6
xor rcx, rdx
cmp rax, rcx
jbe 0x1401562d9
mov rcx, qword [rsp + 0x20]
xor eax, eax
mov edx, eax
mov r8d, 0xff
call fcn.14003b428
jmp 0x14015634a
mov rcx, qword [rsp + 0x100]
mov rax, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x108]
mov r8, qword [rsp + 0x20]
mov byte [rdx + rax], r8b
mov rdx, rax
and rdx, 1
movabs r8, 0xfa883177dac27675
movabs r9, 0xfa883177dac27677
xor r8, r9
imul rdx, r8
movabs r8, 0x7855fc8e84754828
movabs r9, 0x7855fc8e84754829
xor r8, r9
xor rax, r8
xor eax, eax
add rax, rdx
cmp rax, rcx
mov qword [rsp + 0xf0], rax
jl 0x140155890
add rsp, 0x120
pop rsi
ret
ja 0x140156334
invalid
scasb al, byte [rdi]
clc
cmp byte [rcx + rbp*8 + 0x7b], al
cld
invalid
fdiv dword [rax - 0x66162523]
std
invalid