Function at 0x140094a50
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, rcx
mov r9, qword [rcx + 0x118]
mov r8, qword [r9 + 0x108]
mov eax, dword [0x140219a58]
xor eax, dword [0x140219a5c]
mov ecx, eax
xor ecx, 0xce346c13
xor eax, 0x56a9a0b9
and eax, ecx
cmp eax, 0x33bdb473
je 0x140094abf
mov eax, dword [0x140219a60]
add eax, dword [0x140219a64]
mov ecx, 0xb5f12c57
imul rcx, rax
shr rcx, 0x3e
xor ecx, 0xdc276c3b
add ecx, 0x231ab5f7
mov rax, qword [r9 + 0x100]
cmp ecx, 0x12ce84
jae 0x140094ac8
mov rax, qword [r9 + 0x100]
jmp 0x140094a8b
mov rcx, r8
sub rcx, rax
nop
mov eax, dword [0x140219a68]
sub eax, dword [0x140219a6c]
imul eax, eax, 0x7b376154
xor eax, 0x521104f6
cmp eax, 0x818403ac
ja 0x140094ad0
test rcx, rcx
jle 0x14009529f
nop word [rax + rax]
mov eax, dword [0x140219a70]
xor edx, edx
div dword [0x140219a74]
mov edx, eax
xor edx, 0xee753118
and eax, 0x118acee7
add eax, eax
sub eax, edx
mov edx, eax
not edx
mov r10d, eax
and r10d, 0x3bfc60e6
and edx, 0x44039f19
imul edx, r10d
mov r10d, eax
and r10d, 0x44039f19
or eax, 0x44039f19
imul eax, r10d
add eax, edx
or eax, 0xa6293d4f
cmp eax, 0x9c6cb81
jb 0x140094b00
movzx eax, byte [rsi + 0x130]
mov edx, 0xb583a405
nop word cs:[rax + rax]
mov r10d, dword [0x140219a78]
mov r11d, dword [0x140219a7c]
not r10d
not r11d
and r11d, r10d
not r11d
imul r11, rdx
shr r11, 0x3b
not r11d
and r11d, 0x20180050
cmp r11d, 0x6b4bc58a
je 0x140094b70
test al, al
je 0x140094bf7
movabs rax, 0x7ced699abae4238a
mov ecx, dword [0x140219a88]
sub ecx, dword [0x140219a8c]
mov edx, ecx
and edx, 0x2b1d99de
add edx, edx
neg edx
add ecx, edx
add ecx, 0x2b1d99de
or ecx, 0xbe2ac8da
mov edx, 0xf6709627
imul rdx, rcx
shr rdx, 0x3e
cmp edx, 0x202b8846
jbe 0x140094e21
jmp 0x140094e32
mov eax, 1
lock xadd qword [r9 + 0x100], rax
mov r9, rax
not r9
mov rdx, r8
and rdx, r9
or r8, r9
add r8, rdx
nop word [rax + rax]
mov edx, dword [0x140219a80]
mov r10d, dword [0x140219a84]
mov r11d, edx
and r11d, r10d
or edx, r10d
add edx, r11d
add edx, 0x2905d90b
mov r10d, edx
xor r10d, 0xc86b6c6f
xor edx, 0x8692c2a
and edx, 0x2be93eaa
add edx, edx
sub r10d, edx
cmp r10d, 0xb2c9a465
je 0x140094c20
test r8, r8
js 0x140094db0
nop dword [rax]
mov eax, dword [0x140219a90]
mov edx, dword [0x140219a94]
mov r8d, edx
not r8d
and r8d, eax
xor edx, eax
add edx, eax
sub edx, r8d
and edx, 0xa57b2514
mov eax, 0xf725df10
sub eax, edx
or eax, 0x722681aa
add eax, edx
add eax, 0x8da20f0
cmp eax, 0x2d13af11
ja 0x140094c70
mov r8, qword [rsi + 0x120]
nop word cs:[rax + rax]
mov eax, dword [0x140219a98]
xor edx, edx
div dword [0x140219a9c]
mov edx, eax
xor edx, 0x8181cbf4
add edx, eax
and eax, 0x7e7e340b
sub edx, eax
xor edx, 0xf5b7ebfb
add edx, 0x708dcbff
cmp edx, 0xd15cf73d
jb 0x140094cc0
mov rdx, qword [rsi + 0x128]
mov rax, rdx
neg rax
or rax, r9
not rax
shl rax, 4
add r8, rax
mov eax, dword [0x140219aa0]
mov r9d, dword [0x140219aa4]
mov r10d, eax
not r10d
and r10d, r9d
not r9d
and r9d, eax
sub r9d, r10d
imul rax, r9, 0xc2d6703
shr rax, 0x3b
add eax, 0x5cd4ba3
cmp eax, 0x8227996
jbe 0x140094d4a
mov rax, qword [r8]
mov rax, qword [r8 + 8]
lea rax, [rdx + 3]
nop
mov r9d, dword [0x140219aa8]
xor r9d, dword [0x140219aac]
imul r11, r9, 0x2ce18599
shr r11, 0x3d
or r11d, 0x807866ae
cmp rdx, 0x41
setae r9b
test rdx, rdx
mov r10, rdx
cmovs r10, rax
sar r10, 2
cmp rcx, r10
setle r10b
mov rdi, qword [r8]
mov rbx, qword [r8 + 8]
cmp r11d, 0xb9beea57
je 0x140094d50
and r9b, r10b
je 0x140095170
jmp 0x1400951bd
mov ecx, dword [0x140219ab0]
mov edx, dword [0x140219ab4]
mov r8d, edx
not r8d
and r8d, ecx
xor edx, ecx
add edx, ecx
sub edx, r8d
mov ecx, edx
not ecx
and ecx, 0xbf8a60be
and edx, 0x40759f41
sub edx, ecx
imul rcx, rdx, 0x75cc587d
shr rcx, 0x3c
or ecx, 0xb911a5eb
cmp ecx, 0xe27c5c21
je 0x140094db0
mov rcx, qword [rsi + 0x118]
mov edx, dword [0x140219ab8]
and edx, dword [0x140219abc]
imul edx, edx, 0x18fe25e6
cmp edx, 0xc759e4e5
jne 0x1400951ce
jmp 0x140095218
lea rcx, [r8 - 1]
mov qword [r9 + 0x108], rcx
xor edx, edx
test dl, dl
je 0x140094e47
mov rdx, rax
not rdx
add rdx, r8
add rdx, rax
mov qword [r9 + 0x108], rdx
jmp 0x140094e21
mfence
mov r10, qword [rsi + 0x118]
mov r11, qword [r10 + 0x100]
mov r9, rcx
sub r9, r11
js 0x140094ef0
nop word cs:[rax + rax]
mov eax, dword [0x140219ad0]
xor edx, edx
div dword [0x140219ad4]
mov edx, eax
not edx
and edx, 0x413456ab
and eax, 0xbecba954
sub eax, edx
or eax, 0x379c110d
imul rax, rax, 0x4a9a1d0b
shr rax, 0x3c
cmp eax, 0xf02fedac
ja 0x140094e70
mov edx, dword [0x140219ad8]
xor edx, dword [0x140219adc]
mov rax, qword [rsi + 0x120]
xor edx, 0xdb38f389
imul rdx, rdx, 0x70a1bbaf
shr rdx, 0x3a
mov edi, edx
xor edi, 0x9be936df
lea edx, [rdi + rdx*2]
cmp edx, 0x24dc1050
jne 0x140094f44
jmp 0x140094f93
mov eax, dword [0x140219ae8]
sub eax, dword [0x140219aec]
imul rcx, rax, 0xc126c4b
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x520ca3f3
je 0x140094ef0
mov eax, dword [0x140219af0]
imul eax, dword [0x140219af4]
imul rax, rax, 0x36be23d5
shr rax, 0x3d
or eax, 0xdfcb73ec
cmp eax, 0xdc4826e0
jae 0x140095264
jmp 0x140095296
mov edx, dword [0x140219ae0]
mov edi, dword [0x140219ae4]
mov ebx, edx
not ebx
and ebx, edi
mov ebp, edi
not ebp
and ebp, edx
imul ebp, ebx
mov ebx, edx
and ebx, edi
or edx, edi
imul edx, ebx
add edx, ebp
imul ebp, edx, 0xe3bafb73
mov rdx, qword [rsi + 0x128]
lea rbx, [rdx - 1]
and rbx, rcx
shl rbx, 4
mov rdi, qword [rax + rbx]
mov rbx, qword [rax + rbx + 8]
cmp ebp, 0xcb1943eb
jne 0x140094faf
mov rdx, qword [rsi + 0x128]
dec rdx
and rdx, rcx
shl rdx, 4
mov rdi, qword [rax + rdx]
mov rdx, qword [rax + rdx + 8]
jmp 0x140094f44
cmp rcx, r11
jne 0x140095054
mov rax, rcx
lock cmpxchg qword [r10 + 0x100], r8
sete al
mov rcx, qword [rsi + 0x118]
mov qword [rcx + 0x108], r8
nop word cs:[rax + rax]
mov ecx, dword [0x140219b00]
mov edx, dword [0x140219b04]
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
mov edx, ecx
xor edx, 0x5695b3cc
add edx, ecx
and ecx, 0xa96a4c33
sub edx, ecx
mov ecx, edx
xor ecx, 0xbe1a0924
xor edx, 0x60408b
and edx, 0x826049ab
and ecx, 0x7d9fb654
sub ecx, edx
cmp ecx, 0x86a6dc9e
jb 0x140094fe0
test al, al
jne 0x140095170
jmp 0x14009529f
lea rax, [rdx + 3]
nop dword [rax + rax]
mov ecx, dword [0x140219b08]
mov r8d, dword [0x140219b0c]
mov r10d, ecx
not r10d
and r10d, r8d
mov r11d, r8d
not r11d
and r11d, ecx
imul r11d, r10d
mov r10d, ecx
and r10d, r8d
or ecx, r8d
imul ecx, r10d
add ecx, r11d
mov r8d, ecx
not r8d
or r8d, 0x191a9f0a
or ecx, 0xe6e560f5
and ecx, r8d
add ecx, 0xf5a1239a
mov r8d, ecx
xor r8d, 0x374ecc16
and ecx, 0x48b133e9
add ecx, ecx
sub ecx, r8d
test rdx, rdx
mov r8, rdx
cmovs r8, rax
cmp ecx, 0x2e60d76d
je 0x140095060
sar r8, 2
nop word [rax + rax]
cmp r9, r8
setl cl
cmp rdx, 0x41
setae al
mov r10d, dword [0x140219b10]
imul r10d, dword [0x140219b14]
mov r11d, r10d
and r11d, 0x4569ba0f
add r11d, r11d
sub r10d, r11d
imul r10d, r10d, 0x49df89d9
add r10d, 0x4541bdb7
or r10d, 0x2b7ba1eb
cmp r10d, 0x72ea187a
jb 0x1400950e0
and al, cl
nop dword [rax]
mov ecx, dword [0x140219b18]
add ecx, dword [0x140219b1c]
and ecx, 0x48603576
imul rcx, rcx, 0x3a45740b
shr rcx, 0x3c
mov r8d, ecx
xor r8d, 0x1adb6773
lea ecx, [r8 + rcx*2]
cmp ecx, 0xea9d7e59
je 0x140095130
test al, al
jne 0x1400951bd
nop word [rax + rax]
mov eax, dword [0x140219b20]
and eax, dword [0x140219b24]
or eax, 0x206557f2
mov ecx, eax
and ecx, 0x85bf4b6
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x85bf4b6
imul rcx, rax, 0x3bb43f3f
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0xdfbbb9f
ja 0x140095170
test rdi, rdi
jne 0x1400953ba
jmp 0x14009529f
shr rdx, 1
lea rcx, [rsi + 0x118]
call fcn.140161c70
jmp 0x140095170
mov edx, dword [0x140219ac0]
mov r8d, dword [0x140219ac4]
mov r9d, edx
and r9d, r8d
or edx, r8d
not edx
or edx, r9d
xor edx, 0x6a90226
or edx, 0xd956b589
mov r8d, edx
and r8d, 0x65ca3dd0
xor edx, 0xe5ca3dd0
lea edx, [rdx + r8*2]
mov qword [rcx + 0x100], rax
cmp edx, 0xd029d0f9
jne 0x140095230
mov qword [rcx + 0x100], rax
jmp 0x1400951ce
mov eax, dword [0x140219ac8]
add eax, dword [0x140219acc]
imul rax, rax, 0x6af30791
shr rax, 0x3a
add eax, 0xafa020e3
mov ecx, eax
or ecx, 0xb780eeae
or eax, 0xbfa0eeae
and eax, ecx
cmp eax, 0xe356fc56
jae 0x140095230
jmp 0x14009529f
mov eax, dword [0x140219af8]
mov ecx, dword [0x140219afc]
add eax, ecx
add eax, 0x9cdd604b
mov ecx, eax
xor ecx, 0x738e474a
and ecx, eax
add ecx, 0x81cda025
mov qword [r10 + 0x108], r8
cmp ecx, 0x5545780
jae 0x14009529f
mov qword [r10 + 0x108], r8
jmp 0x140095264
add rsi, 0x138
lea rdi, [rsp + 0x20]
nop dword [rax + rax]
mov rcx, rdi
mov rdx, rsi
call fcn.140150090
mov rax, qword [rsp + 0x20]
cmp rax, 2
jne 0x140095317
nop word cs:[rax + rax]
mov eax, dword [0x140219b48]
mov ecx, dword [0x140219b4c]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
add eax, 0x41915ce1
shr eax, 0xa
imul rax, rax, 0x2efbe9
shr rax, 0x29
cmp eax, 0x500bdf37
ja 0x1400952d0
jmp 0x1400952b0
test rax, rax
jne 0x140095320
xor edi, edi
jmp 0x140095390
cmp eax, 1
jne 0x140095400
nop dword [rax]
mov eax, dword [0x140219b38]
mov ecx, dword [0x140219b3c]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
xor ecx, 0xb03494d8
cmp ecx, 0x6bec6455
je 0x140095330
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov eax, dword [0x140219b40]
xor eax, dword [0x140219b44]
imul rax, rax, 0x7aacb227
shr rax, 0x3e
or eax, 0xfb1d2f02
imul eax, eax, 0x19a81f27
cmp eax, 0x7e0b2db8
jb 0x140095360
nop dword [rax]
mov eax, dword [0x140219b50]
mov ecx, dword [0x140219b54]
add eax, ecx
add eax, 0xbd27ac9f
imul rax, rax, 0x1258c4b
shr rax, 0x37
add eax, 0xb1b7e93
cmp eax, 0xe71d262b
jae 0x140095390
mov eax, 0xd7dc3e39
nop
mov ecx, dword [0x140219b30]
sub ecx, dword [0x140219b34]
imul ecx, ecx, 0x87e68f97
imul rcx, rax
shr rcx, 0x3d
or ecx, 0x18b2022d
cmp ecx, 0xc8b2b68e
ja 0x1400953c0
mov rax, rdi
mov rdx, rbx
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov eax, dword [0x140219b28]
mov ecx, dword [0x140219b2c]
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
imul rax, rax, 0x6fd90939
shr rax, 0x3e
add eax, 0xfed9df83
mov ecx, eax
and ecx, 0x56991a01
or eax, 0x57b93a61
add eax, ecx
cmp eax, 0x8b68821c
ja 0x140095400
ud2