Function at 0x140102990
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov eax, dword [0x141f42ec8]
or eax, dword [0x141f42ecc]
or eax, 0x3100077
add eax, 0x7da24f63
or eax, 0x9e7fee85
cmp eax, 0xc0bf6e4d
jne 0x1401029e0
xor eax, eax
call fcn.1400f4d10
sub rsp, rax
mov eax, 0x30
call fcn.1400f4d10
sub rsp, rax
nop dword [rax]
mov ecx, dword [0x141f42ed0]
imul ecx, dword [0x141f42ed4]
add ecx, 0xd0eb93c3
or ecx, 0x8183870
add ecx, 0x3a47f105
xor eax, eax
call fcn.1400f4d10
sub rsp, rax
mov r15, rsp
mov eax, 0x30
call fcn.1400f4d10
sub rsp, rax
mov rsi, rsp
cmp ecx, 0x50b20a4a
jb 0x1401029e0
mov eax, dword [0x141f42ed8]
sub eax, dword [0x141f42edc]
add eax, 0x248dac72
and eax, 0x513e4417
add eax, 0xdb8f73ba
cmp eax, 0x557e9390
ja 0x140102a95
mov eax, dword [0x141f42ee0]
xor edx, edx
div dword [0x141f42ee4]
add eax, 0x34d1b4da
shr eax, 2
imul rcx, rax, 0x83bf6cb
shr rcx, 0x39
or ecx, 0x83927294
mov eax, 0x10
call fcn.1400f4d10
sub rsp, rax
mov rdi, rsp
mov eax, 0x800
call fcn.1400f4d10
sub rsp, rax
mov r14, rsp
cmp ecx, 0x1739b0f5
jae 0x140102ab1
mov eax, 0x10
call fcn.1400f4d10
sub rsp, rax
mov eax, 0x800
call fcn.1400f4d10
sub rsp, rax
jmp 0x140102a46
mov eax, 0x800
call fcn.1400f4d10
sub rsp, rax
mov rbx, rsp
mov eax, dword [0x141f48fa8]
cmp eax, 3
je 0x140102b60
mov eax, dword [0x141f42ee8]
xor edx, edx
div dword [0x141f42eec]
imul eax, eax, 0x3ceb4ea0
add eax, 0x20eecb20
cmp eax, 0x82f6394a
ja 0x140102ba6
mov eax, dword [0x141f42ef0]
xor edx, edx
div dword [0x141f42ef4]
xor eax, 0x14162360
or eax, 0x61a98890
shr eax, 3
imul r12, rax, 0x1167a68b
shr r12, 0x37
sub rsp, 0x20
call fcn.1400faac0
add rsp, 0x20
cmp r12d, 0x3d75c486
ja 0x140102af4
mov eax, dword [0x141f42ef8]
or eax, dword [0x141f42efc]
or eax, 0x9cc2e80a
add eax, 0xad046c58
xor eax, 0x7ab96a53
cmp eax, 0x5e12b584
jb 0x140102b30
nop word cs:[rax + rax]
mov eax, dword [0x141f42f00]
xor edx, edx
div dword [0x141f42f04]
xor eax, 0x130815ab
or eax, 0x84b2ea50
add eax, 0xf44a17af
cmp eax, 0x238a8836
jb 0x140102b60
mov r12, qword [0x141f48fa0]
mov eax, dword [0x141f42f08]
xor eax, dword [0x141f42f0c]
imul eax, eax, 0xe4b07899
cmp eax, 0x6295ee6d
jne 0x140102bb8
jmp 0x140102bea
sub rsp, 0x20
call fcn.1400faac0
add rsp, 0x20
jmp 0x140102af4
mov eax, dword [0x141f42f10]
imul eax, dword [0x141f42f14]
imul ecx, eax, 0x4dde41c0
and ecx, 0x9cd265c0
xor ecx, 0xec3858fa
mov eax, 1
lock xadd qword [r12], rax
cmp ecx, 0x29a70f9d
jae 0x140102bf1
lock inc qword [r12]
jmp 0x140102bb8
test rax, rax
js 0x140102cf8
mov eax, 0x60
xor ecx, ecx
movups xmm0, xmmword [0x141f25528]
movups xmm1, xmmword [0x141f25518]
jmp 0x140102c34
sub rax, 0xffffffffffffff80
add rcx, 4
cmp rax, 0x860
je 0x140102cd0
mov edx, dword [0x141f42f30]
imul edx, dword [0x141f42f34]
and edx, 0x729b5b00
cmp edx, 0x781fff50
je 0x140102c9f
nop
mov edx, dword [0x141f42f38]
add edx, dword [0x141f42f3c]
and edx, 0x18021f00
add edx, 0x74b20b2d
movups xmmword [r14 + rax - 0x50], xmm0
movups xmmword [r14 + rax - 0x60], xmm1
movups xmmword [r14 + rax - 0x40], xmm1
movups xmmword [r14 + rax - 0x30], xmm0
movups xmmword [r14 + rax - 0x20], xmm1
movups xmmword [r14 + rax - 0x10], xmm0
movups xmmword [r14 + rax], xmm1
movups xmmword [r14 + rax + 0x10], xmm0
cmp edx, 0x55cef477
jae 0x140102c20
movups xmmword [r14 + rax - 0x50], xmm0
movups xmmword [r14 + rax - 0x60], xmm1
movups xmmword [r14 + rax - 0x40], xmm1
movups xmmword [r14 + rax - 0x30], xmm0
movups xmmword [r14 + rax - 0x20], xmm1
movups xmmword [r14 + rax - 0x10], xmm0
movups xmmword [r14 + rax], xmm1
movups xmmword [r14 + rax + 0x10], xmm0
jmp 0x140102c50
mov eax, dword [0x141f42f40]
xor eax, dword [0x141f42f44]
or eax, 0x267b0e56
imul eax, eax, 0xea2db5bd
add eax, 0xbbdd998a
cmp eax, 0x7fd7eecd
jbe 0x140102d70
jmp 0x140102db1
mov eax, dword [0x141f42f18]
xor eax, dword [0x141f42f1c]
xor eax, 0x82c6420
and eax, 0x883c6420
mov ecx, 0xc0c0d6b9
imul rcx, rax
shr rcx, 0x3b
cmp ecx, 0x2f8c464e
jbe 0x140102d30
ud2
mov eax, dword [0x141f42f20]
or eax, dword [0x141f42f24]
or eax, 0x9ebd3c21
add eax, 0xa89cf9ad
ud2
mov eax, dword [0x141f42f48]
xor eax, dword [0x141f42f4c]
and eax, 0x49e5ecac
imul r13d, eax, 0xeccc687c
add r13d, 0x94a51e98
sub rsp, 0x20
mov r8d, 0x800
mov rcx, rbx
mov rdx, r14
call fcn.1400f5630
add rsp, 0x20
cmp r13d, 0x4da014fe
jae 0x140102dcc
sub rsp, 0x20
mov r8d, 0x800
mov rcx, rbx
mov rdx, r14
call fcn.1400f5630
add rsp, 0x20
jmp 0x140102d70
mov eax, dword [0x141f42f50]
or eax, dword [0x141f42f54]
add eax, 0x4f9e8144
cmp eax, 0xfd229903
jbe 0x140102dff
movzx eax, byte [0x141f49078]
sub rsp, 0x20
mov edx, 0x980
xor ecx, ecx
call fcn.1400c6170
add rsp, 0x20
xor r14d, r14d
nop word cs:[rax + rax]
movzx eax, byte [0x141f49078]
sub rsp, 0x20
mov edx, 0x980
xor ecx, ecx
call fcn.1400c6170
add rsp, 0x20
test r14b, r14b
jne 0x140102e10
test rax, rax
je 0x1401031ce
mov r13, rax
and r13, 0xffffffffffffff80
lea r14, [r13 + 0x80]
mov qword [r13 + 0x78], rax
mov qword [r13 + 0x80], 0
mov qword [r13 + 0x88], r12
lea rcx, [r13 + 0x90]
sub rsp, 0x20
mov r8d, 0x800
mov rdx, rbx
call fcn.1400f5630
add rsp, 0x20
xorps xmm0, xmm0
movaps xmmword [r13 + 0x890], xmm0
mov qword [r13 + 0x8a0], 1
mov qword [r13 + 0x8a8], 0
mov qword [r13 + 0x900], 0
mov rax, qword [r12 + 0x200]
mov qword [r13 + 0x80], rax
lock cmpxchg qword [r12 + 0x200], r14
mov rcx, rax
sete al
nop word cs:[rax + rax]
mov edx, dword [0x141f42f70]
sub edx, dword [0x141f42f74]
xor edx, 0x7fd753
add edx, 0x1786e35f
or edx, 0xfea224b0
cmp edx, 0x96e8e561
jb 0x140102ed0
test al, al
je 0x14010312d
nop
mov eax, dword [0x141f42f88]
or eax, dword [0x141f42f8c]
xor eax, 0x229403
or eax, 0x69d52bdc
cmp eax, 0xec44db38
jb 0x140102f00
mov eax, dword [0x141f4907c]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov edx, dword [0x141f4907c]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov r8d, dword [0x141f42f90]
xor r8d, dword [0x141f42f94]
mov qword [rdx + 8], 1
imul edx, r8d, 0x907c7f80
add edx, 0x403ae700
cmp edx, 0xccc93436
jae 0x140102fa0
mov edx, dword [0x141f4907c]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov qword [rdx + 0x10], r14
nop dword [rax]
mov edx, dword [0x141f4907c]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov r8d, dword [0x141f42f98]
and r8d, dword [0x141f42f9c]
imul r8d, r8d, 0xe1e04682
or r8d, 0x88d463d4
imul r8d, r8d, 0xecba7bf8
mov qword [rdx + 0x10], r14
cmp r8d, 0x4b78b4aa
je 0x140102fa0
cmp eax, 1
je 0x140103080
test rax, rax
jne 0x14010358c
mov eax, dword [0x141f4907c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 0x40]
mov ecx, 0xe24572d9
nop word [rax + rax]
mov edx, dword [0x141f42fa0]
xor edx, dword [0x141f42fa4]
imul edx, edx, 0x748ee758
imul rdx, rcx
shr rdx, 0x3b
add edx, 0x6bbba718
cmp edx, 0xd78f97e2
ja 0x140103020
test rax, rax
jne 0x1401031ea
mov eax, dword [0x141f42fa8]
mov ecx, dword [0x141f42fac]
add eax, ecx
add eax, 0xea93b14e
and eax, 0x501f3dfc
cmp eax, 0xc53ed921
jbe 0x140103267
jmp 0x1401032a5
mov eax, dword [0x141f43008]
or eax, dword [0x141f4300c]
add eax, 0x71035e21
xor eax, 0xa41de00c
cmp eax, 0x6b35b40b
jb 0x140103080
mov eax, dword [0x141f43010]
or eax, dword [0x141f43014]
or eax, 0xe046b9ef
and eax, 0xe156b9ef
cmp eax, 0xee1456bb
jbe 0x1401030c1
dec qword [rcx + 0x820]
mov r8, qword [rcx + 0x818]
nop dword [rax + rax]
mov eax, dword [0x141f43018]
xor edx, edx
div dword [0x141f4301c]
imul eax, eax, 0xa29d2a93
and eax, 0x14620f5b
imul edx, eax, 0x26424a8a
mov rax, qword [rcx + 0x820]
lea r9, [rax - 1]
xor rax, 1
or rax, r8
sete al
mov qword [rcx + 0x820], r9
cmp edx, 0x9d30404d
ja 0x1401030d0
test al, al
je 0x14010358c
sub rsp, 0x20
call fcn.1400f9f50
add rsp, 0x20
jmp 0x14010358c
mov edx, 0x94dbad6d
jmp 0x14010314c
mov rcx, rax
test r8b, r8b
jne 0x140102f00
mov eax, dword [0x141f42f78]
xor eax, dword [0x141f42f7c]
xor eax, 0xd1d06ca4
imul eax, eax, 0xd6143d91
imul rax, rdx
shr rax, 0x3f
cmp eax, 0xe6a41dd1
ja 0x1401031bc
nop word cs:[rax + rax]
mov eax, dword [0x141f42f80]
xor eax, dword [0x141f42f84]
xor eax, 0x6deda1f4
imul r9d, eax, 0xb2f40873
add r9d, 0x28e92510
mov qword [r14], rcx
mov rax, rcx
lock cmpxchg qword [r12 + 0x200], r14
sete r8b
cmp r9d, 0x2eebdd5f
jbe 0x140103140
mov qword [r14], rcx
mov rax, rcx
lock cmpxchg qword [r12 + 0x200], r14
jmp 0x140103180
mov eax, dword [0x141f42f58]
xor edx, edx
div dword [0x141f42f5c]
or eax, 0xbff8426b
cmp eax, 0x25502402
jne 0x14010320b
jmp 0x140103236
mov eax, dword [0x141f42fc8]
sub eax, dword [0x141f42fcc]
and eax, 0x89110e08
cmp eax, 0xda3b6d15
jne 0x1401033d8
jmp 0x14010340e
mov eax, dword [0x141f42f60]
and eax, dword [0x141f42f64]
add eax, 0xb4ab4a7c
imul rax, rax, 0x6d430109
shr rax, 0x3b
imul eax, eax, 0xb7119051
ud2
ud2
mov eax, dword [0x141f4907c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov ecx, dword [0x141f42fb0]
sub ecx, dword [0x141f42fb4]
add ecx, 0x4bdade3
and ecx, 0x9b5467aa
mov qword [rax + 0x40], 0xffffffffffffffff
cmp ecx, 0xa21addc6
jne 0x1401032c5
mov eax, dword [0x141f4907c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x40], 0xffffffffffffffff
jmp 0x140103267
mov eax, dword [0x141f42fb8]
xor eax, dword [0x141f42fbc]
xor eax, 0xe1522997
imul rax, rax, 0x5e39fcf9
shr rax, 0x37
and eax, 0x78
cmp eax, 0x19c330a
ja 0x14010330a
mov eax, dword [0x141f42fc0]
or eax, dword [0x141f42fc4]
and eax, 0x84092148
mov rcx, qword [0x140108608]
cmp eax, 0x810492e5
jne 0x140103313
mov rax, qword [0x140108608]
jmp 0x1401032eb
mov eax, dword [0x141f4907c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rsi, qword [rax + 0x58]
cmp rsi, qword [rax + 0x48]
jne 0x1401033ad
sub rsp, 0x20
call fcn.1400907b0
add rsp, 0x20
nop word cs:[rax + rax]
mov eax, dword [0x141f42fe8]
add eax, dword [0x141f42fec]
imul eax, eax, 0x2a1bbb73
and eax, 0x10e209ec
add eax, 0x5922afed
cmp eax, 0x73ceaedf
ja 0x140103350
mov eax, dword [0x141f4907c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x40]
inc rcx
mov eax, dword [0x141f42ff0]
xor edx, edx
div dword [0x141f42ff4]
imul eax, eax, 0x7137a27b
cmp eax, 0x5814399c
je 0x140103390
jmp 0x1401033af
xor ecx, ecx
mov eax, dword [0x141f42ff8]
xor edx, edx
div dword [0x141f42ffc]
imul eax, eax, 0xe2906826
or eax, 0xe2750d3b
cmp eax, 0x8b94f6d0
jne 0x1401034d5
jmp 0x14010353d
mov eax, dword [0x141f42fd0]
and eax, dword [0x141f42fd4]
and eax, 0xd4d57e50
mov ecx, 0xba0dc693
imul rcx, rax
shr rcx, 0x3e
add ecx, 0xd00849c5
mov dword [rdi], 0
mov byte [rdi + 4], 0
cmp ecx, 0x9033ef3c
jae 0x14010341a
mov dword [rdi], 0
mov byte [rdi + 4], 0
jmp 0x1401033d8
mov eax, dword [0x141f42fd8]
xor edx, edx
div dword [0x141f42fdc]
add eax, 0x2e5d93d1
and eax, 0x118a9779
add eax, 0x72961b6b
cmp eax, 0xb1f5f2e3
jbe 0x140103458
lea rax, [0x141f25d90]
mov qword [rsi], rax
mov qword [rsi + 8], 1
mov qword [rsi + 0x20], 0
mov eax, 0xcc6a5c95
lea rcx, [0x141f25d90]
nop word cs:[rax + rax]
mov edx, dword [0x141f42fe0]
sub edx, dword [0x141f42fe4]
imul rdx, rax
shr rdx, 0x3f
xor edx, 0xf1fa54ab
mov qword [rsi], rcx
mov qword [rsi + 8], 1
mov qword [rsi + 0x20], 0
cmp edx, 0xb5ee3b31
jb 0x140103470
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], 0
sub rsp, 0x20
mov rcx, rdi
mov rdx, rsi
call fcn.14008e020
mov rcx, rax
call fcn.14008e440
add rsp, 0x20
mov ecx, 7
int 0x29
ud2
mov eax, dword [0x141f43000]
sub eax, dword [0x141f43004]
or eax, 0x94e0161
and eax, 0xc94f1be1
mov rdx, rsi
shl rdx, 4
mov r8d, dword [0x141f4907c]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
mov r9, qword [r8 + 0x50]
lea r10, [r8 + 8]
mov qword [r9 + rdx], r10
lea r10, [0x14007a510]
mov qword [r9 + rdx + 8], r10
lea rdx, [rsi + 1]
mov qword [r8 + 0x58], rdx
mov qword [r8 + 0x40], rcx
cmp eax, 0xaca5c03b
jne 0x14010358c
mov eax, dword [0x141f4907c]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov rdx, qword [rax + 0x50]
mov r8, rsi
shl r8, 4
lea r9, [rax + 8]
mov qword [rdx + r8], r9
lea r9, [0x14007a510]
mov qword [rdx + r8 + 8], r9
lea rdx, [rsi + 1]
mov qword [rax + 0x58], rdx
mov qword [rax + 0x40], rcx
jmp 0x1401034d5
xor eax, eax
nop
test al, al
jne 0x140103590
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret