Function at 0x140083980
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0xe0
mov dword [rsp + 0xa4], edx
mov qword [rsp + 0xa8], rcx
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, qword [rsp + 0xa8]
add rax, 0x60
mov qword [rsp + 0xb0], rax
mov rax, qword [rcx]
mov qword [rsp + 0xb8], rax
mov rax, rcx
add rax, 8
mov qword [rsp + 0xc0], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0xc8], rax
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov qword [rsp + 0xd0], rax
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], rcx
cmp byte [rax + 0x60], 0
jne 0x140083f54
mov eax, dword [0x1402ab610]
mov ecx, dword [0x1402ab614]
xor ecx, 0x9a8b2421
or eax, ecx
and eax, 0xf959b776
and eax, 0x9ee3fb11
mov ecx, 0x7fc4a345
xor edx, edx
div ecx
mov ecx, 0xe921edb5
xor ecx, 0x2c0b0055
cmp eax, ecx
ja 0x1400840e5
mov rcx, qword [rsp + 0xb8]
mov eax, dword [rsp + 0xa4]
mov r8, qword [rsp + 0xd8]
xor edx, edx
mov dword [rsp + 0x94], edx
mov r9b, byte [r8 + 0x60]
mov r10b, dl
movsxd rdx, eax
movabs r8, 0xe7037ed1a0b428db
mov rax, rdx
xor rax, r8
mov qword [rsp + 0x80], rax
movabs r8, 0x74012458094424
xor rdx, r8
movabs rsi, 0xa0761d6478bd642f
and rdx, rsi
movabs r8, 0x5f89e29b87429bd0
and rax, r8
mul rdx
mov r11, rax
mov rax, qword [rsp + 0x80]
mov r8, rdx
mov rdx, rax
and rdx, rsi
or rax, rsi
mul rdx
mov qword [rsp + 0x88], rax
mov rax, rdx
mov rdx, qword [rsp + 0x88]
add rdx, r11
adc rax, r8
xor rax, rdx
movabs rdx, 0xeb44accab455d16d
mul rdx
mov r11, rax
mov eax, dword [rsp + 0x94]
not r11
mov r8, rdx
or r8, r11
and rdx, r11
not r8
or r8, rdx
xor edx, edx
cmp r9b, r10b
cmove rdx, r8
movabs r8, 0xaed740b5ebac545b
movabs r9, 0xaed740b5b409e9ef
xor r8, r9
cmp rdx, 0
cmove rdx, r8
mov qword [rsp + 0x98], rdx
movabs rdx, 0x6a020543c348816b
movabs r8, 0x6a020543c348816b
xor rdx, r8
cmp rcx, rdx
sete cl
mov byte [rsp + 0xa3], cl
cmp eax, 0xc9e8e663
ja 0x1400840e5
mov cl, byte [rsp + 0xa3]
mov rax, 0xffffffffffffffff
test cl, 1
mov qword [rsp + 0x78], rax
jne 0x140083f54
jmp 0x140083bb3
mov eax, dword [0x1402ab620]
mov r8d, dword [0x1402ab624]
xor r8d, 0x7895eb67
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
add eax, 0xfd121d7
mov ecx, 0xf986e7f4
xor ecx, 0x988cac45
add eax, ecx
sub eax, 0xfd121d7
and eax, 0xdd8b65b
mov ecx, 0x47063db8
xor edx, edx
div ecx
mov ecx, 0x637b8b33
xor ecx, 0x870f995d
cmp eax, ecx
jae 0x1400840ee
mov r9, qword [rsp + 0xb8]
mov r8, qword [rsp + 0x98]
mov eax, dword [0x1402ab628]
mov ecx, dword [0x1402ab62c]
xor ecx, 0x416d5b36
or eax, ecx
mov ecx, eax
not ecx
and ecx, 0xc86787f6
and eax, 0x37987809
sub eax, ecx
and eax, 0x804dc2d2
add eax, 0x72b3c819
mov ecx, 0xc0a868a1
mov rdx, r9
dec rdx
mov qword [rsp + 0x60], rdx
and r8, rdx
mov qword [rsp + 0x68], r8
setns dl
sub r8, r9
setl r8b
and dl, r8b
mov byte [rsp + 0x77], dl
cmp eax, ecx
jb 0x1400840ee
mov rax, qword [rsp + 0x68]
mov cl, byte [rsp + 0x77]
test cl, 1
mov qword [rsp + 0x58], rax
jne 0x140083ccf
jmp 0x140083caf
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call fcn.140025e55
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x78], rax
jmp 0x140083f54
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x48], rcx
add rax, 8
imul rcx, rcx, 0x18
add rax, rcx
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
cmp rax, 0
je 0x140083eb4
mov eax, dword [0x1402ab630]
mov ecx, 0xad31c7f3
xor ecx, 0x3aadd350
xor eax, ecx
mov r8d, dword [0x1402ab634]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov edx, 0x9a79313e
xor edx, 0xe815e6f5
mov ecx, eax
xor ecx, edx
mov edx, 0x40c5d7d9
xor edx, 0x32a90012
mov r8d, 0xd6b460a5
xor r8d, 0x294b9f5a
xor edx, r8d
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0x548e1f4f
xor ecx, 0x9db89919
sub eax, ecx
add eax, 0x896953f2
add eax, 0xc9368656
mov edx, eax
xor edx, 0xffffffff
and edx, 0xd54e0a34
mov r8d, 0xffffffff
xor r8d, 0xd54e0a34
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xd54e0a34
or eax, 0xd54e0a34
imul eax, edx
add eax, ecx
cmp eax, 0x9c290e7e
ja 0x1400840f7
mov r8, qword [rsp + 0x98]
mov eax, dword [0x1402ab638]
xor edx, edx
div dword [0x1402ab63c]
mov rdx, qword [rsp + 0x50]
mov ecx, eax
mov eax, 0x361d21e4
xor eax, 0x69e828dc
add ecx, eax
xor ecx, 0x34e81153
mov r9d, 0x295e96b4
xor r9d, 0x5f9c69b9
mov eax, 0x62bd9a53
xor eax, 0x9d4265ac
xor r9d, eax
mov eax, ecx
xor eax, r9d
and eax, ecx
mov ecx, 0x746b79f2
xor ecx, 0x9776d81c
cmp rdx, r8
sete dl
mov byte [rsp + 0x47], dl
cmp eax, ecx
je 0x140083dc3
mov al, byte [rsp + 0x47]
test al, 1
jne 0x140083e41
jmp 0x140083e71
mov rax, qword [rsp + 0x48]
mov edx, dword [rsp + 0xa4]
mov rcx, qword [rsp + 0xc8]
add rcx, 8
imul r8, rax, 0x18
add rcx, r8
add rcx, 8
cmp dword [rcx], edx
mov qword [rsp + 0x78], rax
je 0x140083f54
mov r8, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x48]
mov edx, eax
and edx, 1
xor rax, 1
lea rax, [rax + rdx*2]
and rax, rcx
setns cl
mov rdx, rax
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov qword [rsp + 0x58], rax
jne 0x140083ccf
jmp 0x140083caf
mov rcx, qword [rsp + 0x48]
movabs rdx, 0x5ad83b7f9e857c67
movabs rax, 0xa527c480617a8398
xor rdx, rax
mov rax, rcx
xor rax, rdx
movabs r8, 0x63ec07c826879304
movabs rdx, 0x9c13f837d9786cfb
xor r8, rdx
mov rdx, rcx
xor rdx, r8
and rax, rdx
mov rdx, 0xffffffffffffffff
or rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rax, rdx
or rcx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
movabs rdx, 0xda2ab4ef1c23fe9c
movabs r8, 0x25d54b10e3dc0163
xor rdx, r8
xor rax, rdx
movabs rdx, 0xc5dcd53cf9e92897
movabs r8, 0x3a232ac30616d768
xor rdx, r8
xor rcx, rdx
and rax, rcx
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x30], rcx
mov cl, byte [rax]
mov dl, 0x73
xor dl, 0x73
xor eax, eax
cmp cl, dl
mov qword [rsp + 0x38], rax
jne 0x1400840d7
mov rax, qword [rsp + 0x30]
movabs rcx, 0xbf16e0a5fed02d2c
movabs rdx, 0x40e91f5a012fd2d3
xor rcx, rdx
cmp rax, rcx
jle 0x1400840c4
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rcx]
mov qword [rsp + 0x28], rcx
cmp rax, rcx
jl 0x14008400e
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
movabs rax, 0xcd0272f44ef608c2
add rdx, rax
movabs rax, 0x2b231067a7f1ec2e
movabs r8, 0xd4dcef98580e13d1
xor rax, r8
add rdx, rax
movabs rax, 0xcd0272f44ef608c2
sub rdx, rax
call fcn.140025e55
xor eax, eax
mov qword [rsp + 0x38], rax
jmp 0x1400840d7
mov eax, dword [0x1402ab640]
imul eax, dword [0x1402ab644]
mov ecx, 0xedd1710
xor edx, edx
div ecx
mov ecx, 0x5e3dd284
xor ecx, 0x6346f640
imul eax, ecx
imul eax, eax, 0xeb9ceaaa
cmp eax, 0x5a5d912d
jb 0x140084100
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xc0]
mov eax, dword [0x1402ab648]
mov ecx, 0x987b787f
xor ecx, 0x6c16df5b
xor eax, ecx
mov ecx, dword [0x1402ab64c]
mov r9d, 0x4e96f8bc
xor r9d, 0x8774683b
xor ecx, r9d
add eax, ecx
add eax, 0x41d7ae99
xor eax, 0x75251493
imul eax, eax, 0x7400d328
mov ecx, 0x5b0da4c7
xor ecx, 0x8424faef
mov rdx, qword [rdx]
add rdx, 8
imul r8, r8, 0x18
add rdx, r8
add rdx, 0x10
mov qword [rsp + 0x20], rdx
cmp eax, ecx
je 0x140084043
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x38], rax
jmp 0x1400840d7
mov ecx, dword [rsp + 0xa4]
call fcn.1400831b0
xor eax, eax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
add rsp, 0xe0
pop rsi
ret
in al, dx
imul esi, dword [rax], 0xf97ae9b7
invalid
xor ch, byte [rbp + 0xd]
jmp 0x140083c23
cmp esp, dword [rdx + 0x58]
fucompp
ret
loopne 0x14008410b
invalid
sub rsp, 0x38
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x28], rcx
in al, dx
cmp byte [rcx + 0x48342454], cl
mov dword [rsp + 0x28], ecx
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, qword [rsp + 0x28]
mov edx, dword [rsp + 0x34]
add rsp, 0x38
jmp 0x140083980