Function at 0x140373510
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
test ecx, ecx
je 0x1403735b7
test edx, edx
je 0x1403735fe
movzx eax, byte [0x14051c74e]
cmp al, 0x8f
je 0x140373a55
xor ecx, ecx
mov edx, 0x4937e5c1
lea rax, [fcn.140373510]
lea r8d, [rax + rax]
add r8d, 0x43e0
jmp 0x140373558
cmp al, 0x8f
je 0x140373a55
movzx r9d, byte [0x14051dddc]
lea eax, [r9 - 0x17]
add r9b, 0xd5
lock cmpxchg byte [0x14051c74e], r9b
je 0x1403736bd
test cl, cl
jne 0x1403735a0
nop dword [rax + rax]
mov r9d, dword [0x14051ddd8]
add r9d, edx
xor r9d, r8d
not r9d
test r9d, r8d
je 0x140373550
nop word cs:[rax + rax]
mov r9d, dword [0x140534ca0]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x1403735a0
jmp 0x140373580
mov eax, dword [0x14051ddd8]
mov ecx, eax
xor ecx, 0x4937e5c0
and eax, 0x4937e5c0
lea eax, [rcx + rax*2]
cmp edx, eax
jne 0x14037366d
mov eax, dword [0x140534ca0]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
mov eax, 0x4937e5c0
mov edx, dword [0x14051ddd8]
add edx, eax
cmp ecx, edx
jne 0x140373890
jmp 0x140373862
movzx eax, byte [0x14051c448]
movzx ecx, byte [0x14051dddc]
add cl, 0x7a
cmp al, cl
je 0x14037380d
mov cl, 0x34
jmp 0x140373628
cmp al, 0xeb
je 0x14037380d
mov al, 0x93
lock cmpxchg byte [0x14051c448], cl
je 0x140373709
mov edx, dword [0x140534ca0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140373660
nop dword [rax]
mov edx, dword [0x140534ca4]
cmp edx, 0x60
jl 0x140373620
nop dword [rax + rax]
mov edx, dword [0x140534ca4]
cmp edx, 0x62
jge 0x140373660
jmp 0x140373650
movzx eax, byte [0x14051c516]
movzx ecx, byte [0x14051dddc]
mov edx, ecx
xor dl, 0x48
and cl, 0x48
add cl, cl
add cl, dl
cmp al, cl
je 0x1403739d6
nop
movzx ecx, byte [0x14051dddc]
lea eax, [rcx - 0x6b]
mov edx, ecx
xor dl, 0x3e
and cl, 0x3e
add cl, cl
add cl, dl
lock cmpxchg byte [0x14051c516], cl
je 0x140373819
cmp al, 0xb9
jne 0x140373690
jmp 0x1403739d6
xor eax, eax
lea rcx, [0x14051c740]
lea rdx, [0x140426790]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x1403736e8
inc rax
jmp 0x1403736d0
mov eax, dword [0x140534ca0]
mov ecx, dword [0x14051ddd8]
add ecx, eax
dec ecx
imul ecx, eax
test cl, 1
jne 0x140373a40
jmp 0x140373a30
xor r9d, r9d
mov r10d, 0x4937e5c2
lea r11, [0x14051c440]
lea rsi, [0x1404264a0]
mov edi, 0x4937e5e6
jmp 0x14037375f
mov eax, r9d
xor eax, 1
not r9d
and r9d, 0x7ffffffe
or r9d, eax
not r9d
add r9d, r9d
mov ecx, eax
xor ecx, r9d
and r9d, eax
lea r9d, [rcx + r9*2]
cmp r9d, 8
jge 0x140373805
mov ecx, dword [0x140534ca0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x14051ddd8]
add ecx, r10d
xor edx, edx
div ecx
movsxd rbx, r9d
test edx, edx
jne 0x1403737a0
nop
movzx eax, byte [rbx + rsi]
add byte [rbx + r11], al
mov eax, dword [0x140534ca4]
mov ecx, dword [0x14051ddd8]
add ecx, edi
cmp eax, ecx
jl 0x140373730
nop word [rax + rax]
movzx eax, byte [rbx + r11]
movzx edx, byte [rbx + rsi]
sub al, dl
mul dl
mov ecx, eax
sub al, dl
mul dl
mov edx, eax
mov eax, ecx
mul dl
mul dl
mov r8d, eax
sub al, dl
mul dl
mov edx, r8d
mov ecx, eax
shl dl, cl
mov ebp, r8d
mov ecx, edx
shl bpl, cl
mov eax, r8d
sub al, bpl
mul bpl
mov ecx, eax
not cl
mov edx, r8d
xor dl, cl
xor cl, al
and cl, r8b
xor cl, al
and dl, r8b
add dl, dl
add dl, cl
mov byte [rbx + r11], dl
mov eax, dword [0x140534ca4]
cmp eax, 0x2f
jge 0x1403737a0
jmp 0x140373780
mov al, 0xeb
xchg byte [0x14051c448], al
lea rax, [0x14051c440]
jmp 0x1403739b9
xor eax, eax
lea rcx, [0x14051c500]
lea rdx, [0x140426560]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x15
jg 0x140373848
inc rax
jmp 0x140373830
mov eax, dword [0x140534ca0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403739cc
jmp 0x1403739be
movzx ecx, byte [0x14051c6f7]
mov edx, dword [0x140534ca0]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x14051ddd8]
add edx, eax
cmp r8d, edx
je 0x1403738a5
nop dword [rax + rax]
movzx ecx, byte [0x14051c6f7]
cmp dword [0x14051ddd8], 0xb6c81a40
jne 0x140373890
jmp 0x140373862
cmp cl, 0xfa
je 0x1403739b2
mov cl, 0xd2
mov al, 0xaa
lock cmpxchg byte [0x14051c6f7], cl
je 0x1403738cf
movzx edx, byte [0x14051dddc]
add dl, 0x89
cmp al, dl
jne 0x1403738b0
jmp 0x1403739b2
xor eax, eax
lea rcx, [0x14051c6f0]
lea rdx, [0x140426740]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 6
jg 0x1403738f8
inc rax
jmp 0x1403738e0
mov eax, dword [0x140534ca0]
mov eax, 0x4937e5d7
nop word cs:[rax + rax]
mov ecx, dword [0x140534ca4]
mov edx, dword [0x14051ddd8]
add edx, eax
cmp ecx, edx
jge 0x140373910
lea rax, [fcn.140373510]
add eax, eax
add eax, 0x3f20
mov ecx, eax
not ecx
mov edx, 0x4937e5c0
nop dword [rax]
mov r8d, dword [0x14051ddd8]
mov r9d, 0xb6c81a3e
sub r9d, r8d
add r8d, 0x4937e5c1
and r9d, ecx
xor r8d, eax
or r8d, r9d
cmp r8d, 0xffffffff
je 0x14037397d
mov r8b, 0xfa
xchg byte [0x14051c6f7], r8b
mov r8d, dword [0x140534ca4]
cmp r8d, 0x60
jge 0x140373940
movzx r8d, byte [0x14051dddc]
add r8b, 0x89
xchg byte [0x14051c6f7], r8b
mov r8d, dword [0x140534ca0]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x14051ddd8]
add r8d, edx
cmp r9d, r8d
jne 0x140373966
lea rax, [0x14051c6f0]
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov al, 0xb9
xchg byte [0x14051c516], al
xor eax, eax
test al, al
je 0x1403739d6
mov al, 0xb9
xchg byte [0x14051c516], al
jmp 0x1403739be
mov eax, 0x4937e5c0
nop dword [rax + rax]
mov ecx, dword [0x140534ca0]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x140373a06
mov ecx, dword [0x140534ca0]
mov edx, 1
sub edx, ecx
imul edx, ecx
test dl, 1
je 0x140373a27
mov ecx, dword [0x140534ca0]
mov edx, 0x7c2f5bc1
sub edx, ecx
imul edx, ecx
and edx, 1
mov ecx, dword [0x14051ddd8]
add ecx, eax
cmp edx, ecx
jne 0x1403739e0
jmp 0x1403739f1
lea rax, [0x14051c500]
jmp 0x1403739b9
mov al, 0x8f
xchg byte [0x14051c74e], al
mov al, 1
test al, al
jne 0x140373a55
nop
mov al, 0x8f
xchg byte [0x14051c74e], al
mov eax, dword [0x140534ca4]
cmp eax, 0xb
jge 0x140373a40
jmp 0x140373a30
lea rax, [0x14051c740]
jmp 0x1403739b9