Function at 0x140050bb9
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x148
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x88], r8
mov dword [rbp + 0x94], edx
mov qword [rbp + 0xa0], rcx
mov eax, 0x20
call fcn.14024f5c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x98], rax
sub rsp, 0x20
call fcn.14004e8b3
mov rcx, qword [rbp + 0xa0]
add rsp, 0x20
mov qword [rbp + 0xa8], rax
mov rax, qword [rcx]
movabs rcx, 0x741fbdad8948e85c
movabs rdx, 0x741fbdad8948e85c
xor rcx, rdx
cmp rax, rcx
jne 0x14004fc4a
movabs rcx, 0x545153e1600f3481
movabs rax, 0x545153e1600f34a1
xor rcx, rax
sub rsp, 0x20
call fcn.14004ea9c
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x80], rcx
cmp byte [rax], 0
jne 0x14005070f
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 0xa0]
mov qword [rcx + 0x10], 0
cmp rax, 0
jge 0x14004fc2f
mov rcx, qword [rbp + 0x80]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000cee2
add rsp, 0x20
jmp 0x14005070f
mov rdx, qword [rbp + 0x80]
mov rcx, qword [rbp + 0xa0]
sub rsp, 0x20
call fcn.140016120
add rsp, 0x20
mov edx, dword [rbp + 0x94]
mov rcx, qword [rbp + 0x98]
mov rax, qword [rbp + 0xa0]
mov qword [rbp + 0xb0], 0
mov r8, qword [rax]
mov qword [rcx], r8
mov r8, qword [rax + 8]
mov qword [rcx + 8], r8
mov rax, qword [rax + 0x10]
mov qword [rcx + 0x10], rax
lea r8, [rbp + 0xb0]
sub rsp, 0x20
call fcn.140050740
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x78], rcx
cmp byte [rax], 0
jne 0x14005070f
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0xa0]
mov rcx, qword [rcx]
mov qword [rbp + 0x70], rcx
cmp rax, 0xffffffffffffffff
jle 0x14004fd2c
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x70]
cmp rax, rcx
jl 0x14004fcf5
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp + 0x70]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140013507
add rsp, 0x20
jmp 0x14005070f
mov rdx, qword [rbp + 0x88]
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0xa0]
mov rcx, qword [rcx + 8]
add rcx, 8
imul rax, rax, 0x18
add rcx, rax
add rcx, 0x10
sub rsp, 0x20
call fcn.14009fd40
add rsp, 0x20
jmp 0x14005070f
mov rax, qword [rbp + 0x70]
cmp rax, 0
mov qword [rbp + 0x68], rax
jne 0x14004febc
movabs rcx, 0x4c7819dcf52fbb6
movabs rax, 0x4c7819dcf52fb96
xor rcx, rax
sub rsp, 0x20
call fcn.14004ea9c
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x60], rcx
cmp byte [rax], 0
jne 0x14005070f
mov eax, dword [0x140252630]
mov ecx, dword [0x140252634]
xor ecx, 0x60282dd3
xor eax, ecx
mov ecx, eax
and ecx, 0x4d3eb15f
shl ecx, 1
mov edx, 0x2d36b9a2
xor edx, 0x600808fd
xor eax, edx
add eax, ecx
mov ecx, 0xb8ae975c
xor edx, edx
div ecx
and eax, 0x812dad1f
mov ecx, 0xc58f7b23
xor ecx, 0x57f092c4
cmp eax, ecx
je 0x140050719
mov r8, qword [rbp + 0xa0]
mov eax, dword [0x140252638]
xor eax, 0x33e616f9
mov ecx, dword [0x14025263c]
xor ecx, 0xc134e7a6
or eax, ecx
mov ecx, 0xd348503b
xor ecx, 0xff7f6621
add eax, ecx
mov edx, 0xffffffff
xor edx, 0x237eaa00
mov ecx, eax
and ecx, edx
mov r9d, 0x4f91f5ca
xor r9d, 0x6cef5fca
mov edx, eax
xor edx, r9d
add eax, edx
sub eax, ecx
mov ecx, 0x7724a5a9
xor edx, edx
div ecx
mov rdx, qword [rbp + 0x60]
mov ecx, 0x8c48acc6
xor ecx, 0xd50a27f
mov qword [r8 + 0x10], 0
movabs r8, 0xea82faed23ebc687
movabs r9, 0xea82faed23ebc687
xor r8, r9
cmp rdx, r8
setl dl
mov byte [rbp + 0x5f], dl
cmp eax, ecx
jae 0x14004fdc8
mov al, byte [rbp + 0x5f]
test al, 1
jne 0x14004fe72
jmp 0x14004fe96
mov rcx, qword [rbp + 0x60]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000cee2
add rsp, 0x20
jmp 0x14005070f
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0x60]
sub rsp, 0x20
call fcn.140016120
mov rax, qword [rbp + 0xa0]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x68]
mov qword [rbp + 0x50], rax
mov eax, dword [0x140252640]
xor eax, dword [0x140252644]
and eax, 0xc62ef715
mov r8d, 0x721b1a7b
xor r8d, 0x9ac11b50
mov ecx, 0xfaef92bf
xor ecx, 0x5106d40
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0xad53cbfa
xor r8d, 0x52ac3405
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xe8da012b
or eax, 0xe8da012b
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x7bf95213
mov edx, 0xd81200bf
xor edx, 0xa3eb52ac
mov r8d, 0xd823907e
xor r8d, 0x27dc6f81
xor edx, r8d
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0xf57e4a84
xor ecx, 0x9dc0a0b9
cmp eax, ecx
je 0x140050722
mov rcx, qword [rbp + 0x50]
mov eax, dword [0x140252648]
mov r8d, dword [0x14025264c]
mov edx, 0xf2613427
xor edx, 0x3253e4b5
xor r8d, edx
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rbp + 0xa0]
and edx, edx
xor edx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x3922c73b
mov r9d, 0xffffffff
xor r9d, 0x3922c73b
or r8d, r9d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
mov r8d, 0x8c0c00a9
xor r8d, 0xc5c70c80
or edx, r8d
mov r8d, 0xffffffff
xor r8d, 0xa4c24ca
add edx, r8d
add edx, 1
mov dword [rbp + 0x48], edx
mov rdx, rax
add rdx, 8
mov qword [rbp + 0x30], rdx
mov rdx, rax
add rdx, 0x10
mov qword [rbp + 0x38], rdx
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x40], rax
mov edx, 2
lea r8, [rbp + 0xc0]
sub rsp, 0x20
call fcn.14004f720
add rsp, 0x20
mov cl, al
mov eax, dword [rbp + 0x48]
mov byte [rbp + 0x4f], cl
cmp eax, 0x626faaa9
jb 0x140050722
mov al, byte [rbp + 0x4f]
test al, 1
jne 0x140050156
jmp 0x140050035
mov rcx, qword [rbp + 0x40]
mov edx, 3
lea r8, [rbp + 0xb8]
sub rsp, 0x20
call fcn.14004f720
add rsp, 0x20
test al, 1
jne 0x140050156
mov rcx, qword [rbp + 0xc0]
xor eax, eax
cmp rcx, qword [rbp + 0xb8]
mov byte [rbp + 0x2f], al
jl 0x140050178
mov r8, qword [rbp + 0x40]
mov rax, qword [rbp + 0x50]
movabs rcx, 0x1637831dd91795c3
movabs rdx, 0x8b7142df9b3cc1cd
xor rcx, rdx
mov rdx, rax
sub rdx, rcx
sub rdx, r8
movabs rcx, 0xfdb1110223978de8
movabs r9, 0x60f7d0c061bcd9e6
xor rcx, r9
add rdx, rcx
mov qword [rbp + 0x20], rdx
mov r9, rdx
xor r9, rax
xor r9, 0xffffffffffffffff
mov rcx, rax
and rcx, r9
shl rcx, 1
sub rcx, rax
mov rax, rdx
sub rax, rcx
cmp rax, 0
setl al
mov rcx, rdx
or rcx, rcx
movabs r9, 0x3c7aa9600b9aeacb
movabs r10, 0xc385569ff4651534
xor r9, r10
xor rcx, r9
mov r9, r8
or r9, r9
xor r9, 0xffffffffffffffff
or rcx, r9
xor rcx, 0xffffffffffffffff
or rdx, r8
movabs r8, 0x58fccbdb11336566
movabs r9, 0xa7033424eecc9a99
xor r8, r9
xor rdx, r8
or rcx, rdx
xor rcx, 0xffffffffffffffff
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x140050156
mov rax, qword [rbp + 0x20]
cmp rax, 3
setg al
mov byte [rbp + 0x2f], al
jmp 0x140050178
sub rsp, 0x20
call fcn.140007e9d
mov rax, qword [rbp + 0xa8]
add rsp, 0x20
cmp byte [rax], 0
je 0x1400504b8
jmp 0x14005070f
mov rax, qword [rbp + 0xa8]
mov cl, byte [rbp + 0x2f]
mov al, byte [rax]
test al, al
setne al
mov byte [rbp + 0x1f], al
or al, cl
test al, 1
jne 0x1400504a8
mov rcx, qword [rbp + 0xa0]
sub rsp, 0x20
call fcn.14004ef70
mov rax, qword [rbp + 0xa8]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x74
xor cl, 0x74
cmp al, cl
jne 0x14005070f
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0xb0]
mov qword [rbp - 0x10], rdx
mov rcx, qword [rcx]
mov qword [rbp], rcx
mov rax, qword [rax]
mov qword [rbp - 8], rax
sub rsp, 0x20
call fcn.14004e8b3
mov rcx, qword [rbp]
add rsp, 0x20
mov qword [rbp + 8], rax
mov rax, 0xffffffffffffffff
cmp rcx, 0
mov qword [rbp + 0x10], rax
je 0x1400503d3
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp]
movabs rcx, 0x37478d4bdb4ae736
movabs r8, 0x37478d4bdb4ae736
xor rcx, r8
movabs r8, 0xf9f0f4f1b53c23b9
movabs r9, 0x60f0b0e4ac3dc46
xor r8, r9
sub rcx, r8
sub rax, rcx
mov qword [rbp - 0x20], rax
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
mov qword [rbp - 0x18], rax
mov rdx, qword [rbp]
mov rcx, qword [rbp - 0x18]
mov qword [rbp - 0x28], rcx
test rcx, rcx
setns al
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1400502a4
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.140013507
add rsp, 0x20
xor eax, eax
mov qword [rbp + 0x10], rax
jmp 0x1400503d3
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp + 8]
mov rax, qword [rbp - 8]
lea r8, [rcx + rcx*2]
mov rax, qword [rax + r8*8 + 8]
mov qword [rbp - 0x40], rax
test rax, rax
sete al
mov r9b, byte [rdx]
xor edx, edx
mov r10b, dl
test r9b, r9b
setne dl
or dl, al
mov eax, 6
mov r8d, 3
cmp r9b, r10b
cmovne eax, r8d
test dl, 1
mov qword [rbp - 0x38], rcx
mov dword [rbp - 0x2c], eax
jne 0x140050364
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x10]
cmp rax, rcx
jne 0x14005032f
mov rax, qword [rbp - 0x28]
mov edx, dword [rbp + 0x94]
mov rcx, qword [rbp - 8]
add rcx, 8
imul r8, rax, 0x18
add rcx, r8
add rcx, 8
cmp dword [rcx], edx
mov qword [rbp + 0x10], rax
je 0x1400503d3
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.14004fa4c
mov r8, qword [rbp + 8]
add rsp, 0x20
mov rdx, rax
xor ecx, ecx
xor eax, eax
cmp byte [r8], 0
mov qword [rbp - 0x38], rdx
mov dword [rbp - 0x2c], ecx
mov qword [rbp + 0x10], rax
jne 0x1400503d3
mov rax, qword [rbp - 0x38]
mov ecx, dword [rbp - 0x2c]
mov dword [rbp - 0x54], ecx
mov qword [rbp - 0x50], rax
xor edx, edx
mov qword [rbp - 0x48], rdx
test ecx, ecx
mov qword [rbp - 0x18], rax
je 0x140050262
jmp 0x140050389
mov rax, qword [rbp - 0x48]
mov ecx, dword [rbp - 0x54]
sub ecx, 6
mov qword [rbp + 0x10], rax
jne 0x1400503d3
jmp 0x1400503a2
mov rax, qword [rbp - 0x50]
mov rdx, rax
and rdx, 0xffffffffffffffff
movabs rcx, 0x3ccdfee99eccf1de
movabs r8, 0x3ccdfee99eccf1dc
xor rcx, r8
imul rcx, rdx
add rax, 0xffffffffffffffff
sub rax, rcx
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x60], rax
mov eax, dword [0x140252650]
mov ecx, dword [0x140252654]
mov edx, 0x273c6b7b
xor edx, 0xb3b04c2
add eax, edx
sub eax, ecx
mov ecx, 0x242960bf
xor ecx, 0x82e0f06
sub eax, ecx
mov ecx, 0xe3e2bfe2
xor ecx, 0x7e4200dc
xor eax, ecx
mov ecx, 0x1f8ff854
xor ecx, 0x46936e3e
add eax, ecx
mov edx, 0xffffffff
xor edx, 0xda703f3a
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xda703f3a
add eax, edx
sub eax, ecx
mov ecx, 0xa5142b78
xor ecx, 0x5937d37e
cmp eax, ecx
ja 0x14005072b
mov rcx, qword [rbp + 0xa8]
mov eax, dword [0x140252658]
xor eax, dword [0x14025265c]
add eax, 0x6a558bdb
xor eax, 0x348ae3d0
mov r8d, 0x919f53f5
xor edx, edx
div r8d
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0x6ffebf2a
jae 0x14005044b
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x10]
mov dl, byte [rbp - 0x61]
test dl, 1
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x70], rax
jne 0x1400504cb
jmp 0x14005070f
mov al, byte [rbp + 0x1f]
test al, 1
jne 0x14005070f
jmp 0x1400504b8
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0xb0]
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x70], rax
mov r9, qword [rbp + 0x88]
mov r8d, dword [rbp + 0x94]
mov rdx, qword [rbp + 0xa0]
mov r10, qword [rbp - 0x78]
mov rax, qword [rbp - 0x70]
mov r11, rax
xor r11, 0xffffffffffffffff
xor r11, 0xffffffffffffffff
movabs rcx, 0x6454043580530d99
movabs rsi, 0x9babfbca7facf266
xor rcx, rsi
and rcx, r11
shl rcx, 1
sub rcx, 0xffffffffffffffff
sub rax, rcx
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.14004ed50
mov rax, qword [rbp + 0xa8]
add rsp, 0x30
cmp byte [rax], 0
jne 0x14005070f
mov rax, qword [rbp + 0x38]
mov rdx, qword [rax]
mov rax, rdx
add rax, 1
mov qword [rbp - 0x80], rax
mov rcx, rdx
or rcx, rcx
xor rcx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
or r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
movabs r8, 0xf0d6af29a27da540
movabs r9, 0xf2950d65d825abf
xor r8, r9
xor rdx, r8
mov r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x1400505c3
sub rsp, 0x20
call fcn.140007e9d
add rsp, 0x20
jmp 0x14005070f
mov eax, dword [0x140252660]
mov edx, dword [0x140252664]
mov ecx, edx
and ecx, eax
mov r8d, 0xf38bbe34
xor r8d, 0xc7441cb
xor ecx, r8d
add eax, edx
add eax, 1
add eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x58a5f8f2
xor edx, 0x8103261b
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0xd9a6dee9
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xd9a6dee9
mov r8d, 0xa3f232a5
xor r8d, 0x7a54ec4c
or eax, r8d
imul eax, edx
add eax, ecx
imul r11d, eax, 0x87be9564
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x70a5e623
mov edx, 0xffffffff
xor edx, 0x19ede625
mov eax, ecx
and eax, 0x19ede625
and r11d, edx
mov r10d, 0xcc9c5954
xor r10d, 0xd571bf71
mov r9d, r8d
and r9d, r10d
mov r10d, edx
and r10d, 0x70a5e623
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0x19ede625
and ecx, edx
or eax, ecx
mov ecx, 0x9170f392
xor ecx, 0xb35df782
cmp eax, ecx
je 0x140050734
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp - 0x80]
mov eax, dword [0x140252668]
mov r8d, dword [0x14025266c]
mov r9d, 0x761d3d3d
xor r9d, 0xd6ebe6bb
xor r8d, r9d
or eax, r8d
or eax, 0x5947ddc7
mov r9d, 0xffffffff
xor r9d, 0x9c479a6b
mov r8d, eax
and r8d, r9d
mov r9d, eax
xor r9d, 0x9c479a6b
add eax, r9d
sub eax, r8d
imul eax, eax, 0xce039ad6
mov qword [rcx], rdx
cmp eax, 0x70a5e140
jb 0x1400506a6
jmp 0x14005070f
lea rsp, [rbp + 0xc8]
pop rsi
pop rbp
ret
movsd dword [rdi], dword [rsi]
pop rbx
outsb dx, byte [rsi]
add ecx, ebp
cmpsb byte [rsi], byte [rdi]
idiv bh
call qword [rsi]
imul edx, dword [rbx - 0x7ce1629], 0xffffffff
invalid
invalid
invalid
rcl dword [rdx + 0x69e964ef]
invalid
sub rsp, 0x38
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x2c], edx
mov qword [rsp + 0x20], rcx
call fcn.14004e8b3
mov rcx, qword [rsp + 0x20]
mov edx, dword [rsp + 0x2c]
mov r8, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x14004fb30