Function at 0x140120380
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
mov rbp, rsp
mov rsi, rcx
mov eax, dword [0x1415bd898]
add eax, dword [0x1415bd89c]
cmp eax, 0x4535fba3
je 0x1401203c7
mov eax, 0x20
call fcn.14021cf50
sub rsp, rax
mov rdi, rsp
mov rdx, qword [rsi + 0x118]
mov r9, qword [rdx + 0x108]
xor eax, eax
test al, al
je 0x1401203e4
mov eax, 0x20
call fcn.14021cf50
sub rsp, rax
mov rax, qword [rsi + 0x118]
mov rax, qword [rax + 0x108]
jmp 0x1401203a3
mov rax, qword [rdx + 0x100]
mov rcx, r9
sub rcx, rax
test rcx, rcx
jle 0x140120ae7
movzx eax, byte [rsi + 0x130]
xor r8d, r8d
nop word cs:[rax + rax]
test r8b, r8b
jne 0x140120410
test al, al
je 0x14012045b
lea rcx, [r9 - 1]
mov qword [rdx + 0x108], rcx
mfence
mov r10, qword [rsi + 0x118]
mov eax, dword [0x1415bd8b0]
mov edx, dword [0x1415bd8b4]
add eax, edx
add eax, 0xca1b63c1
xor eax, 0x804120
and eax, 0x94a643fa
cmp eax, 0x42f195b0
jne 0x140120680
jmp 0x14012068d
mov eax, 1
lock xadd qword [rdx + 0x100], rax
movabs r8, 0xec3a41eb9144ed54
mov rdx, r8
not rdx
nop dword [rax]
mov r10d, dword [0x1415bd8a0]
mov r11d, dword [0x1415bd8a4]
mov ebx, r10d
not ebx
and ebx, r11d
mov r14d, r11d
not r14d
and r14d, r10d
imul r14d, ebx
mov ebx, r10d
and ebx, r11d
or r10d, r11d
imul r10d, ebx
add r10d, r14d
mov r11d, r10d
not r11d
mov ebx, r10d
and ebx, 0x8f26c935
and r11d, 0x70d936ca
imul r11d, ebx
mov ebx, r10d
and ebx, 0x70d936ca
or r10d, 0x70d936ca
imul r10d, ebx
add r10d, r11d
mov r11d, r10d
not r11d
or r11d, 0x1bc99464
add r11d, r10d
imul r10d, r11d, 0x5e8e6294
add r10d, 0x5e8e6294
cmp r10d, 0xb3cb2039
ja 0x140120480
xor rdx, r8
mov r8, rdx
and r8, rax
xor r8, rdx
add r9, r8
nop
mov edx, dword [0x1415bd8a8]
mov r8d, dword [0x1415bd8ac]
mov r10d, edx
and r10d, r8d
xor edx, r8d
lea edx, [rdx + r10*2]
add edx, 0x463db370
mov r8d, edx
xor r8d, 0xb864005c
xor edx, 0x4619fd83
mov r10d, edx
and r10d, 0x479a8723
and r8d, 0xb86578dc
imul r8d, r10d
mov r10d, edx
and r10d, 0xb86578dc
or edx, 0xb86578dc
imul edx, r10d
add edx, r8d
cmp edx, 0xf873e2ea
je 0x140120520
test r9, r9
js 0x140120600
mov rdx, qword [rsi + 0x120]
xor r8d, r8d
nop word cs:[rax + rax]
test r8b, r8b
jne 0x1401205a0
mov r8, qword [rsi + 0x128]
movabs r9, 0xa3f76ed4be259556
mov r10, r9
not r10
add r10, r9
add r10, r8
and r10, rax
shl r10, 4
mov rbx, qword [rdx + r10]
mov r14, qword [rdx + r10 + 8]
lea rax, [r8 + 3]
test r8, r8
cmovns rax, r8
sar rax, 2
cmp rcx, rax
setle al
cmp r8, 0x41
jae 0x140120a16
jmp 0x140120a93
mov ecx, dword [0x1415bd8c0]
mov edx, dword [0x1415bd8c4]
mov r8d, edx
not r8d
mov r9d, ecx
and r9d, r8d
or r8d, ecx
not r8d
imul r8d, r9d
mov r9d, ecx
and r9d, edx
or ecx, edx
imul ecx, r9d
add ecx, r8d
add ecx, 0x6e0b6b56
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0x3be4d62b
and edx, 0xc41b29d4
imul edx, r8d
mov r8d, ecx
and r8d, 0xc41b29d4
or ecx, 0xc41b29d4
imul ecx, r8d
add ecx, edx
cmp ecx, 0xa868535e
je 0x140120600
mov rcx, qword [rsi + 0x118]
mov qword [rcx + 0x100], rax
jmp 0x140120ae7
mov r15, qword [r10 + 0x100]
xor eax, eax
test al, al
je 0x140120696
mov rax, qword [r10 + 0x100]
jmp 0x140120680
mov rax, rcx
not rax
mov rdx, rax
and rdx, r15
mov r11, r15
not r11
and r11, rcx
sub r11, rdx
nop
mov edx, dword [0x1415bd8b8]
xor edx, dword [0x1415bd8bc]
or edx, 0x20fe94e0
mov r8d, edx
and r8d, 0x78a12fa7
add r8d, r8d
neg r8d
add edx, r8d
add edx, 0x78a12fa7
and edx, 0x9314083b
cmp edx, 0x8c721ccb
jb 0x1401206b0
test r11, r11
js 0x1401207b1
nop word cs:[rax + rax]
mov edx, dword [0x1415bd8cc]
mov r8d, edx
xor r8d, r8d
not r8d
and r8d, dword [0x1415bd8c8]
xor r8d, edx
mov edx, r8d
not edx
mov ebx, r8d
and ebx, 0x18e5040e
and edx, 0x671afbf1
imul edx, ebx
mov ebx, r8d
and ebx, 0x671afbf1
or r8d, 0x671afbf1
imul r8d, ebx
add edx, r8d
add edx, 0x5910bbe8
not edx
or edx, 0x9859283e
cmp edx, 0xf840734c
ja 0x140120700
mov rdx, qword [rsi + 0x120]
mov r8d, dword [0x1415bd8d0]
mov ebx, dword [0x1415bd8d4]
mov r14d, r8d
xor r14d, ebx
not r14d
or r8d, ebx
and r8d, r14d
mov ebx, r8d
not ebx
or ebx, 0x3647d76e
add r8d, ebx
inc r8d
imul r8, r8, 0x6a5743ff
shr r8, 0x3e
add r8d, 0xa7843af5
cmp r8d, 0x1bb03f3e
jae 0x140120828
jmp 0x140120890
mov qword [r10 + 0x108], r9
nop dword [rax + rax]
mov ecx, dword [0x1415bd8f0]
mov edx, dword [0x1415bd8f4]
mov eax, ecx
not eax
mov r8d, edx
not r8d
mov r9d, eax
and r9d, 0x4a91ee4
and ecx, 0xfb56e11b
or ecx, r9d
or eax, r8d
and r8d, 0x4a91ee4
and edx, 0xfb56e11b
or edx, r8d
xor edx, ecx
not eax
or eax, edx
imul rcx, rax, 0x11439d7f
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1d
imul eax, eax, 0x13a52fb7
cmp eax, 0x7a8ad01
je 0x1401207c0
jmp 0x140120ae7
mov r12d, dword [0x1415bd8d8]
mov r8d, dword [0x1415bd8dc]
mov ebx, r8d
and ebx, r12d
add r12d, r8d
sub r12d, ebx
mov r8d, r12d
xor r8d, 0x1ce2623f
and r12d, 0x231d9dc0
add r12d, r12d
sub r12d, r8d
add r12d, 0x5f48a7b5
or r12d, 0x8150c1d1
mov r8, qword [rsi + 0x128]
mov r14, r8
neg r14
or r14, rax
not r14
shl r14, 4
mov rbx, qword [rdx + r14]
mov r14, qword [rdx + r14 + 8]
cmp r12d, 0x404cc123
jae 0x1401208af
mov r8, qword [rsi + 0x128]
dec r8
and r8, rcx
shl r8, 4
mov rbx, qword [rdx + r8]
mov r8, qword [rdx + r8 + 8]
jmp 0x140120828
mov eax, dword [0x1415bd8e0]
xor edx, edx
div dword [0x1415bd8e4]
nop dword [rax]
mov eax, dword [0x1415bd8e8]
mov edx, dword [0x1415bd8ec]
mov r12d, eax
xor r12d, edx
not r12d
and r12d, edx
add r12d, r12d
sub edx, r12d
add eax, edx
add eax, 0xf7b6dceb
imul rax, rax, 0x3d708287
shr rax, 0x3d
cmp eax, 0xd94831b7
je 0x1401208c0
cmp rcx, r15
jne 0x140120930
mov eax, dword [0x1415bd8f8]
sub eax, dword [0x1415bd8fc]
add eax, 0x722101b0
mov edx, eax
xor edx, 0xcc82be48
and edx, eax
mov eax, edx
xor eax, 0xe6e9efd7
and eax, edx
cmp eax, 0x30637cb6
jbe 0x140120a36
jmp 0x140120a73
mov eax, 0xdced8237
nop word cs:[rax + rax]
mov ecx, dword [0x1415bd90c]
add ecx, dword [0x1415bd908]
imul rcx, rax
shr rcx, 0x3e
add ecx, 0xc0970c59
mov edx, ecx
not edx
mov r9d, ecx
and r9d, 0x80140859
and edx, 0x20604326
imul edx, r9d
mov r9d, ecx
and r9d, 0x40830406
or ecx, 0x60e34726
imul ecx, r9d
add ecx, edx
cmp ecx, 0xb1f810c6
je 0x140120940
lea rcx, [r8 + 3]
xor edx, edx
nop word cs:[rax + rax]
cmp r8, 0x41
setb al
test r8, r8
mov r9, r8
cmovs r9, rcx
sar r9, 2
cmp r11, r9
setge r9b
test dl, dl
jne 0x1401209a0
or al, r9b
xor al, 1
nop word cs:[rax + rax]
mov ecx, dword [0x1415bd910]
mov edx, ecx
not edx
or edx, dword [0x1415bd914]
add ecx, edx
inc ecx
mov edx, ecx
and edx, 0x25eef7a8
add edx, edx
sub ecx, edx
add ecx, 0x25eef7a8
mov edx, ecx
not edx
and edx, 0x507596a6
and ecx, 0x2f8a6959
sub ecx, edx
and ecx, 0x656185af
cmp ecx, 0x218bf19a
je 0x1401209d0
test al, al
je 0x140120a93
shr r8, 1
lea rcx, [rsi + 0x118]
sub rsp, 0x20
mov rdx, r8
call fcn.14023dd90
add rsp, 0x20
jmp 0x140120a93
mov edx, dword [0x1415bd900]
xor edx, dword [0x1415bd904]
add edx, 0x22dfd434
mov eax, edx
or eax, 0x85c8c000
and eax, 0x85ccd8a0
or edx, 0xafccfaa3
add edx, eax
mov rax, rcx
lock cmpxchg qword [r10 + 0x100], r9
sete al
cmp edx, 0xb4218e86
jbe 0x140120a81
mov rax, rcx
lock cmpxchg qword [r10 + 0x100], r9
jmp 0x140120a36
mov rcx, qword [rsi + 0x118]
mov qword [rcx + 0x108], r9
test al, al
je 0x140120ae7
mov eax, dword [0x1415bd918]
xor edx, edx
div dword [0x1415bd91c]
mov eax, 0xfb0ff5a7
nop word cs:[rax + rax]
mov ecx, dword [0x1415bd920]
mov edx, ecx
not edx
or edx, dword [0x1415bd924]
add ecx, edx
add ecx, 0xe878c557
imul rcx, rax
shr rcx, 0x3e
or ecx, 0x973a8bc4
cmp ecx, 0x42098233
jb 0x140120ab0
test rbx, rbx
jne 0x140120c80
add rsi, 0x138
nop
mov eax, dword [0x1415bd928]
mov ecx, dword [0x1415bd92c]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xe33338ef
and ecx, 0x1cccc710
imul ecx, edx
mov edx, eax
and edx, 0x1cccc710
or eax, 0x1cccc710
imul eax, edx
add eax, ecx
xor eax, 0x4399ae09
imul rax, rax, 0x3b39e10d
shr rax, 0x3b
cmp eax, 0x9d333b33
je 0x140120af0
jmp 0x140120b90
mov eax, dword [0x1415bd950]
xor eax, dword [0x1415bd954]
xor eax, 0x3c8ea212
imul eax, eax, 0xedaccd4c
mov ecx, eax
not ecx
or ecx, 0xef3a23c0
add ecx, eax
cmp ecx, 0x803e578e
je 0x140120b60
nop dword [rax + rax]
mov eax, dword [0x1415bd930]
xor edx, edx
div dword [0x1415bd934]
add eax, 0x45e669ef
and eax, 0xf7ce9f87
imul rax, rax, 0x7297ab4b
shr rax, 0x3d
cmp eax, 0x2c8410eb
ja 0x140120b90
mov eax, dword [0x1415bd938]
xor eax, dword [0x1415bd93c]
imul eax, eax, 0xb44e2b1b
add eax, 0x17a1e0b5
or eax, 0xaea0f955
cmp eax, 0xde742260
jbe 0x140120bf0
sub rsp, 0x20
mov rcx, rdi
mov rdx, rsi
call fcn.140120ca0
add rsp, 0x20
mov eax, dword [0x1415bd940]
mov ecx, dword [0x1415bd944]
add eax, ecx
add eax, 0x436cfc25
mov ebx, eax
xor ebx, 0x2ba399bb
xor eax, 0xb80891b
and eax, 0x5b98cb1f
add eax, eax
sub ebx, eax
sub rsp, 0x20
mov rcx, rdi
mov rdx, rsi
call fcn.140120ca0
add rsp, 0x20
cmp ebx, 0xedd476b
je 0x140120bf0
mov rax, qword [rdi]
cmp rax, 1
jg 0x140120b60
cmp eax, 1
jne 0x140120c7e
nop word cs:[rax + rax]
mov eax, dword [0x1415bd948]
xor edx, edx
div dword [0x1415bd94c]
or eax, 0x16004400
xor eax, 0x41008000
and eax, 0x5f0ce480
cmp eax, 0xc2ea9258
ja 0x140120c50
mov rbx, qword [rdi + 8]
mov r14, qword [rdi + 0x10]
jmp 0x140120c80
xor ebx, ebx
mov rax, rbx
mov rdx, r14
mov rsp, rbp
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret