Function at 0x140157130
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x140157189
test edx, edx
je 0x1401571d9
test r8d, r8d
je 0x140157219
test r9d, r9d
je 0x140157299
movzx eax, byte [0x14049acf1]
cmp al, 0x89
je 0x140157449
mov cl, 0xd5
nop word cs:[rax + rax]
mov al, 0xa7
lock cmpxchg byte [0x14049acf1], cl
je 0x140157419
cmp al, 0x89
jne 0x140157170
jmp 0x140157449
test edx, edx
je 0x140157259
test r8d, r8d
je 0x1401572c9
test r9d, r9d
je 0x140157349
movzx eax, byte [0x14049ac79]
cmp al, 0x36
je 0x140157519
mov cl, 0xf4
nop word cs:[rax + rax]
mov al, 0x3e
lock cmpxchg byte [0x14049ac79], cl
je 0x1401574e9
cmp al, 0x36
jne 0x1401571c0
jmp 0x140157519
test r8d, r8d
je 0x140157309
test r9d, r9d
je 0x140157379
movzx eax, byte [0x14049ae1d]
cmp al, 0x23
je 0x140157559
mov cl, 0x52
nop dword [rax]
mov al, 0xbb
lock cmpxchg byte [0x14049ae1d], cl
je 0x140157525
cmp al, 0x23
jne 0x140157200
jmp 0x140157559
test r9d, r9d
je 0x1401573a9
movzx eax, byte [0x14049acd0]
cmp al, 0xb4
je 0x140157599
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0x5d
lock cmpxchg byte [0x14049acd0], cl
je 0x140157565
cmp al, 0xb4
jne 0x140157240
jmp 0x140157599
test r8d, r8d
je 0x1401573d9
test r9d, r9d
je 0x140157455
movzx eax, byte [0x14049adb6]
cmp al, 0xd8
je 0x140157639
mov cl, 0x8b
nop dword [rax]
mov al, 5
lock cmpxchg byte [0x14049adb6], cl
je 0x14015760f
cmp al, 0xd8
jne 0x140157280
jmp 0x140157639
movzx eax, byte [0x14049abc6]
cmp al, 0xab
je 0x1401575d9
mov cl, 0xcb
nop word [rax + rax]
mov al, 0x6a
lock cmpxchg byte [0x14049abc6], cl
je 0x1401575a5
cmp al, 0xab
jne 0x1401572b0
jmp 0x1401575d9
test r9d, r9d
je 0x140157489
movzx eax, byte [0x14049ac60]
cmp al, 0xa4
je 0x140157679
mov cl, 0x2b
nop word cs:[rax + rax]
mov al, 0x85
lock cmpxchg byte [0x14049ac60], cl
je 0x140157645
cmp al, 0xa4
jne 0x1401572f0
jmp 0x140157679
test r9d, r9d
je 0x1401574b9
movzx eax, byte [0x14049ad33]
cmp al, 0x51
je 0x1401576b9
mov cl, 0x33
nop word cs:[rax + rax]
mov al, 0xc6
lock cmpxchg byte [0x14049ad33], cl
je 0x140157685
cmp al, 0x51
jne 0x140157330
jmp 0x1401576b9
movzx eax, byte [0x14049ac16]
cmp al, 0x33
je 0x1401576f9
mov cl, 0x52
nop word [rax + rax]
mov al, 0x44
lock cmpxchg byte [0x14049ac16], cl
je 0x1401576c5
cmp al, 0x33
jne 0x140157360
jmp 0x1401576f9
movzx eax, byte [0x14049ab8b]
cmp al, 0xf9
je 0x140157739
mov cl, 0xf6
nop word [rax + rax]
mov al, 0xdb
lock cmpxchg byte [0x14049ab8b], cl
je 0x140157705
cmp al, 0xf9
jne 0x140157390
jmp 0x140157739
movzx eax, byte [0x14049ab45]
cmp al, 0xcb
je 0x140157779
mov cl, 0x5b
nop word [rax + rax]
mov al, 0x2d
lock cmpxchg byte [0x14049ab45], cl
je 0x140157745
cmp al, 0xcb
jne 0x1401573c0
jmp 0x140157779
test r9d, r9d
je 0x1401575e5
movzx eax, byte [0x14049ac96]
cmp al, 0xd8
je 0x1401577b9
mov cl, 0xe8
nop word cs:[rax + rax]
mov al, 0xe4
lock cmpxchg byte [0x14049ac96], cl
je 0x140157785
cmp al, 0xd8
jne 0x140157400
jmp 0x1401577b9
xor eax, eax
lea rcx, [0x14049ace0]
lea rdx, [0x1403bdb90]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x11
jl 0x140157430
mov al, 0x89
xchg byte [0x14049acf1], al
lea rax, [0x14049ace0]
jmp 0x140157912
movzx eax, byte [0x14049ac83]
cmp al, 0x2e
je 0x1401577f9
mov cl, 0xaf
nop word cs:[rax + rax]
mov al, 0x2a
lock cmpxchg byte [0x14049ac83], cl
je 0x1401577c5
cmp al, 0x2e
jne 0x140157470
jmp 0x1401577f9
movzx eax, byte [0x14049acba]
cmp al, 0xba
je 0x140157899
mov esi, dword [rsp + 0x60]
mov cl, 0xc2
nop
mov al, 0x2a
lock cmpxchg byte [0x14049acba], cl
je 0x140157805
cmp al, 0xba
jne 0x1401574a0
jmp 0x140157899
movzx eax, byte [0x14049ae8d]
cmp al, 0x54
je 0x1401578d9
mov cl, 0xde
nop word [rax + rax]
mov al, 0x6a
lock cmpxchg byte [0x14049ae8d], cl
je 0x1401578a2
cmp al, 0x54
jne 0x1401574d0
jmp 0x1401578d9
xor eax, eax
lea rcx, [0x14049ac70]
lea rdx, [0x1403bdaf0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x140157500
mov al, 0x36
xchg byte [0x14049ac79], al
lea rax, [0x14049ac70]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ae10]
lea rdx, [0x1403bdcc0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140157540
mov al, 0x23
xchg byte [0x14049ae1d], al
lea rax, [0x14049ae10]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049acc0]
lea rdx, [0x1403bdb80]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x140157580
mov al, 0xb4
xchg byte [0x14049acd0], al
lea rax, [0x14049acc0]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049abb0]
lea rdx, [0x1403bda50]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x1401575c0
mov al, 0xab
xchg byte [0x14049abc6], al
lea rax, [0x14049abb0]
jmp 0x140157912
movzx eax, byte [0x14049ad25]
cmp al, 0x8f
je 0x14015790b
mov cl, 0x3a
mov al, 0x5d
lock cmpxchg byte [0x14049ad25], cl
je 0x1401578e2
cmp al, 0x8f
jne 0x1401575f6
jmp 0x14015790b
xor eax, eax
lea rcx, [0x14049ad90]
lea rdx, [0x1403bdc40]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x140157620
mov al, 0xd8
xchg byte [0x14049adb6], al
lea rax, [0x14049ad90]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ac50]
lea rdx, [0x1403bdae0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x140157660
mov al, 0xa4
xchg byte [0x14049ac60], al
lea rax, [0x14049ac50]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ad30]
lea rdx, [0x1403bdbe0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x1401576a0
mov al, 0x51
xchg byte [0x14049ad33], al
lea rax, [0x14049ad30]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ac00]
lea rdx, [0x1403bdaa0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x1401576e0
mov al, 0x33
xchg byte [0x14049ac16], al
lea rax, [0x14049ac00]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ab80]
lea rdx, [0x1403bda20]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x140157720
mov al, 0xf9
xchg byte [0x14049ab8b], al
lea rax, [0x14049ab80]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ab30]
lea rdx, [0x1403bd9d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x140157760
mov al, 0xcb
xchg byte [0x14049ab45], al
lea rax, [0x14049ab30]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ac90]
lea rdx, [0x1403bdb10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 6
jl 0x1401577a0
mov al, 0xd8
xchg byte [0x14049ac96], al
lea rax, [0x14049ac90]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ac80]
lea rdx, [0x1403bdb00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x1401577e0
mov al, 0x2e
xchg byte [0x14049ac83], al
lea rax, [0x14049ac80]
jmp 0x140157912
cmp qword [0x1404ee8c8], 0
jne 0x140157864
mov r9d, esi
xor r9d, 0xd0187b2c
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.140156490
mov rdi, rax
mov qword [0x1404ee8c8], rax
xor esi, 0x7c2a31c1
lea rcx, [0x140156370]
mov edx, esi
call fcn.140137f30
xor eax, eax
lea rcx, [0x1403bdb60]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x140157855
mov rax, qword [0x1404ee8c8]
xor ecx, ecx
lea rdx, [0x1403bdb70]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x140157880
mov al, 0xba
xchg byte [0x14049acba], al
mov rax, qword [0x1404ee8c8]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ae80]
lea rdx, [0x1403bdd30]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x1401578c0
mov al, 0x54
xchg byte [0x14049ae8d], al
lea rax, [0x14049ae80]
jmp 0x140157912
xor eax, eax
lea rcx, [0x14049ad20]
lea rdx, [0x1403bdbd0]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x1401578f2
mov al, 0x8f
xchg byte [0x14049ad25], al
lea rax, [0x14049ad20]
add rsp, 0x28
pop rdi
pop rsi
ret