Function at 0x140372f90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test ecx, ecx
je 0x140372fe0
mov eax, 0x4937e5c0
add eax, dword [0x14051ddd8]
cmp edx, eax
jne 0x14037309d
xor eax, eax
mov cl, 1
nop dword [rax + rax]
test al, al
jne 0x140372fd3
movzx edx, byte [0x14051c7e0]
test al, al
je 0x1403730c9
movzx edx, byte [0x14051c7e0]
test cl, cl
je 0x140372fc0
jmp 0x140372fc4
mov eax, 0x4937e606
lea rcx, [fcn.140372f90]
add ecx, ecx
add ecx, 0x40e0
mov r8d, ecx
not r8d
mov r9b, 1
nop dword [rax]
mov r10d, dword [0x140534ca4]
mov r11d, dword [0x14051ddd8]
add r11d, eax
cmp r10d, r11d
jge 0x14037301b
test r8d, ecx
je 0x140373022
test r9b, r9b
je 0x140373000
jmp 0x140373016
test edx, edx
je 0x1403730f9
movzx eax, byte [0x14051c4ce]
cmp al, 0x58
je 0x1403733b9
mov cl, 0xbc
jmp 0x140373048
cmp al, 0x58
je 0x1403733b9
mov al, 0x66
lock cmpxchg byte [0x14051c4ce], cl
je 0x1403732ba
cmp qword [0x140531608], 0
jne 0x140373090
nop word cs:[rax + rax]
mov edx, dword [0x140534ca0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x140373040
nop word cs:[rax + rax]
mov edx, dword [0x140534ca4]
cmp edx, 0x42
jge 0x140373090
jmp 0x140373070
movzx eax, byte [0x14051c598]
cmp al, 6
je 0x1403734e3
mov cl, 0xa1
nop
mov al, 0xce
lock cmpxchg byte [0x14051c598], cl
je 0x1403731e8
cmp al, 6
jne 0x1403730b0
jmp 0x1403734e3
cmp dl, 0xcb
je 0x14037327a
mov cl, 0x15
nop word cs:[rax + rax]
mov al, 0x9e
lock cmpxchg byte [0x14051c7e0], cl
je 0x140373218
cmp al, 0xcb
jne 0x1403730e0
jmp 0x14037327a
mov eax, 0x4937e5fb
mov ecx, 0x4937e5c0
nop word cs:[rax + rax]
mov edx, dword [0x140534ca4]
mov r8d, dword [0x14051ddd8]
add r8d, eax
cmp edx, r8d
jge 0x14037314e
movzx edx, byte [0x14051c153]
mov r8d, dword [0x140534ca0]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x14051ddd8]
add r8d, ecx
cmp r9d, r8d
je 0x14037316b
movzx edx, byte [0x14051c153]
mov edx, dword [0x140534ca0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140373110
jmp 0x140373125
cmp dl, 0xc
je 0x140373493
mov ecx, 0x4937e5c1
lea rax, [fcn.140372f90]
lea edx, [rax + rax]
add edx, 0xae0
mov r8b, 0xdc
nop dword [rax]
mov eax, dword [0x14051ddd8]
add eax, ecx
test edx, eax
jne 0x1403731d0
nop dword [rax]
mov al, 0x8d
lock cmpxchg byte [0x14051c153], r8b
sete r9b
mov r10d, dword [0x140534ca4]
cmp r10d, 0x26
jge 0x1403731d0
test r9b, r9b
jne 0x1403733c5
cmp al, 0xc
jne 0x140373190
jmp 0x140373493
mov al, 0x8d
lock cmpxchg byte [0x14051c153], r8b
mov eax, dword [0x140534ca4]
cmp eax, 0x24
jge 0x1403731d0
jmp 0x1403731a0
xor eax, eax
lea rcx, [0x14051c590]
lea rdx, [0x1404265f0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 7
jg 0x140373286
inc rax
jmp 0x140373200
xor eax, eax
lea rcx, [0x14051c7d0]
lea rdx, [0x140426810]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x140373250
inc rax
jmp 0x140373230
mov eax, dword [0x140534ca0]
mov ecx, dword [0x14051ddd8]
mov edx, eax
sub edx, ecx
inc edx
imul edx, eax
and edx, 1
add ecx, 0x4937e5c0
cmp edx, ecx
jne 0x140373250
mov al, 0xcb
xchg byte [0x14051c7e0], al
lea rax, [0x14051c7d0]
jmp 0x14037349a
mov eax, 0x4937e5c1
add eax, dword [0x14051ddd8]
lea rcx, [fcn.140372f90]
add ecx, ecx
add ecx, 0x3800
mov edx, ecx
not edx
xor ecx, eax
not eax
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
jne 0x1403734f7
jmp 0x1403734ec
xor edi, edi
lea rbx, [0x14051c4b0]
lea r14, [0x140426510]
lea rax, [fcn.140372f90]
lea ebp, [rax + rax]
add ebp, 0x1d60
mov r15d, ebp
not r15d
lea rsi, [0x140374b90]
jmp 0x1403732fb
inc edi
cmp edi, 0x1e
jge 0x140373390
mov eax, dword [0x140534ca0]
lea ecx, [rax - 1]
imul ecx, eax
movsxd r12, edi
test cl, 1
jne 0x140373340
nop
movzx eax, byte [r12 + r14]
xor byte [r12 + rbx], al
mov eax, dword [0x14051ddd8]
lea ecx, [rax + 0x4937e5c1]
mov edx, ebp
xor edx, ecx
not ecx
and ecx, r15d
or ecx, edx
not ecx
add eax, 0x4937e5c0
cmp ecx, eax
je 0x1403732f0
nop dword [rax + rax]
movzx r13d, byte [r12 + rbx]
mov ecx, 0x63
call fcn.14039c114
mov qword [0x140534c90], rax
mov rcx, rsi
call fcn.1403bbdc0
movzx ecx, byte [r12 + r14]
mov eax, r13d
shl al, cl
mov edx, r13d
mov ecx, eax
shl dl, cl
xor dl, r13b
mov byte [r12 + rbx], dl
mov eax, dword [0x140534ca4]
cmp eax, 0x14
jge 0x140373340
jmp 0x140373310
mov eax, dword [0x140534ca4]
cmp eax, 0x33
jle 0x1403733a6
mov eax, dword [0x140534ca4]
cmp eax, 0x13
jge 0x140373390
mov eax, dword [0x140534ca4]
cmp eax, 0x22
jg 0x14037339b
mov al, 0x58
xchg byte [0x14051c4ce], al
lea rax, [0x14051c4b0]
jmp 0x14037349a
xor r8d, r8d
lea rax, [0x14051c140]
lea rcx, [0x1404261d0]
mov edx, 0x4937e5c1
nop dword [rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
xor byte [r8 + rax], r9b
mov r9d, dword [0x14051ddd8]
add r9d, edx
mov r10d, r8d
xor r10d, r9d
and r9d, r8d
lea r8d, [r10 + r9*2]
cmp r8d, 0x12
jle 0x1403733e0
xor edi, edi
mov ebx, 0x4937e60c
lea rsi, [0x140374b70]
nop word [rax + rax]
mov eax, dword [0x140534ca0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14051ddd8]
mov edx, eax
xor edx, 0x4937e5c0
and eax, 0x4937e5c0
lea eax, [rdx + rax*2]
cmp ecx, eax
je 0x14037347f
nop dword [rax]
mov ecx, dword [0x14051ddd8]
add ecx, ebx
call fcn.14039c114
mov qword [0x140534c88], rax
mov rcx, rsi
call fcn.1403bbdc0
mov al, 0xc
xchg byte [0x14051c153], al
mov eax, dword [0x140534ca4]
cmp eax, 0x50
jge 0x140373420
movzx eax, byte [0x14051dddc]
add al, 0x9b
xchg byte [0x14051c153], al
test dil, dil
jne 0x140373450
lea rax, [0x14051c140]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x140534ca0]
nop word cs:[rax + rax]
mov eax, dword [0x140534ca4]
cmp eax, 0x3f
jg 0x1403734c0
movzx eax, byte [0x14051dddc]
mov ecx, eax
xor cl, 0x95
and al, 0x15
add al, al
add al, cl
xchg byte [0x14051c598], al
lea rax, [0x14051c590]
jmp 0x14037349a
mov eax, dword [0x140534ca4]
cmp eax, 0x62
jl 0x1403734ab
mov al, 1
nop dword [rax]
test al, al
je 0x140373500
jmp 0x1403734ec