Function at 0x14037a470
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, rcx
mov ecx, 0x5660ea74
nop dword [rax + rax]
mov eax, dword [0x140578da4]
cmp eax, 0x29
jg 0x14037a4ad
movsxd rsi, dword [0x14045e1d0]
mov eax, dword [0x140578da4]
cmp eax, 0x19
jle 0x14037a4d4
mov eax, dword [0x14045e1d0]
mov edx, dword [0x140578da0]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x14055cab8]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x14037a490
jmp 0x14037a49b
mov eax, dword [0x14045e1cc]
mov dword [rsp + 0x3c], eax
test rdi, rdi
je 0x14037a95a
mov edx, dword [0x14055cab8]
lea ecx, [rdx - 0x3442ba7a]
add edx, 0xd286a8ab
call fcn.14037dc20
test rax, rax
je 0x14037a95a
mov r11, rax
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14037a95a
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x60], rdi
mov rax, qword [r11 + 0x18]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14037a961
neg rsi
lea rax, [0x14045e1d0]
sub rsi, rax
movabs r12, 0xd6d10165d166dfb2
add rsi, r12
sub r12, rsi
xor ebx, ebx
mov sil, 1
lea r14, [0x14037ccc0]
xor eax, eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x40], rax
xor r15d, r15d
jmp 0x14037a5aa
mov edx, 1
mov rcx, qword [r10]
test rcx, rcx
cmovne r10, rcx
mov qword [rsp + 0x40], r10
movzx r15d, al
cmove r15d, edx
mov eax, r15d
xor al, 0xfe
test al, r15b
jne 0x14037a961
mov rax, qword [rsp + 0x48]
cmp rax, qword [r11 + 0x10]
je 0x14037a5e7
mov ecx, 0x755c5b14
mov edx, 0x7c25be39
call fcn.14037dc20
test rax, rax
je 0x14037a961
mov r11, rax
mov rax, qword [rax + 0x10]
mov rcx, qword [r11 + 0x18]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rax
movzx eax, byte [0x14055cacc]
add al, 0xb0
mov r13d, eax
xor r13b, al
not r13b
and r13b, r15b
xor r13b, al
mov eax, r15d
xor al, 1
and r13b, 0xfe
or r13b, al
not r13b
mov eax, dword [0x140578da4]
cmp eax, 0x5a
jge 0x14037a680
nop dword [rax]
mov edi, dword [0x14055bd78]
lea ebp, [rdi + 1]
mov dword [0x14055bd78], ebp
mov eax, dword [0x140578da4]
cmp eax, 0x35
jge 0x14037a680
mov eax, dword [0x140578da4]
test bl, bl
jne 0x14037a640
xor edi, ebp
not edi
mov ecx, 0
mov r8d, 0
test edi, ebp
jne 0x14037a860
mov qword [rsp + 0x50], r11
mov eax, dword [0x140578da4]
cmp eax, 0x47
jg 0x14037a7d0
jmp 0x14037a700
mov eax, dword [0x14055bd78]
mov edx, 0xe706660d
sub edx, eax
neg eax
imul eax, edx
mov ecx, dword [0x14055cab8]
sub eax, edx
lea edx, [rax + rcx]
add edx, 0x5660ea73
add cl, 0x7f
mov eax, edx
shl eax, cl
mov ecx, eax
shl edx, cl
sub edx, eax
imul edx, eax
mov r8d, edx
shl r8d, cl
neg edx
mov eax, edx
xor eax, r8d
and edx, r8d
lea eax, [rax + rdx*2]
mov edx, eax
sub edx, r8d
imul edx, r8d
mov ecx, eax
sub ecx, edx
imul ecx, edx
mov edx, eax
shl edx, cl
sub edx, eax
mov dword [0x14055bd78], edx
mov eax, dword [0x140578da0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14037a680
jmp 0x14037a620
mov eax, dword [0x140578da4]
cmp eax, 0x3f
jge 0x14037a7d0
mov ecx, 0
mov r8d, 0
cmp dword [rsp + 0x3c], 0
mov r11, qword [rsp + 0x50]
jle 0x14037a860
mov r9d, 0x10
xor ecx, ecx
xor r8d, r8d
nop word cs:[rax + rax]
lea eax, [r9 - 0x10]
movsxd r10, eax
add r10, r12
mov edx, dword [0x140578da0]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, dword [0x14055cab8]
mov edx, 0x5660ea74
add r11d, edx
xor edx, edx
div r11d
test edx, edx
jne 0x14037a7c0
nop
mov rdx, qword [r10]
mov rax, qword [r10 + 8]
mov r11d, dword [0x140578da4]
cmp r11d, 0x12
jg 0x14037a7c0
mov r10, rax
xor r10, rax
mov r11, rdx
xor r11, rdx
not r11
and rcx, r11
xor rcx, rdx
not r10
and r8, r10
xor r8, rax
cmp r9d, dword [rsp + 0x3c]
jge 0x14037a855
add r9d, 0x10
jmp 0x14037a740
mov rax, qword [r10]
mov rax, qword [r10 + 8]
jmp 0x14037a770
mov eax, dword [0x14055cab8]
lea ecx, [rax + 0x5660ea72]
lea edx, [rax + 0x5660ea73]
lea r8d, [rax + 0x5660ea85]
mov r9d, eax
xor r9d, 0xdfc94d09
mov r10d, eax
and r10d, 0x5fc94d09
lea r9d, [r9 + r10*2]
add eax, 0x283a68ee
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r9d
xor r9d, r9d
call fcn.14037d8a0
mov qword [0x140578d88], rax
mov rcx, r14
call fcn.1403f5a50
mov ecx, dword [0x140578da0]
mov r8d, dword [0x14055cab8]
mov eax, ecx
sub eax, r8d
add eax, 0xa99f158d
imul eax, ecx
add r8d, 0x5660ea74
xor edx, edx
div r8d
test edx, edx
jne 0x14037a7d0
jmp 0x14037a700
mov r11, qword [rsp + 0x50]
nop word [rax + rax]
test r13b, r13b
jne 0x14037a59c
mov rax, qword [0x14045e1a0]
mov rdx, qword [0x14045e198]
xor r9d, r9d
test edi, ebp
setne r9b
neg r9
mov r10d, 0
sbb r10, r10
sub rdx, rcx
sbb rax, r8
xor r10, rax
xor r9, rdx
and r9, rdx
and r10, rax
or r10, r9
movzx ecx, byte [0x14055cac0]
add cl, 0xac
mov rax, r10
shr rax, cl
or eax, r10d
mov ecx, dword [0x140578da0]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14037a950
nop dword [rax]
mov ecx, dword [0x140578da4]
cmp ecx, 0x54
jge 0x14037a950
mov ecx, eax
shr ecx, 0x10
or ecx, eax
add word [0x140578dac], cx
mov r10, qword [rsp + 0x40]
cmp r10, qword [rsp + 0x58]
movzx eax, r15b
mov r9d, 1
cmove eax, r9d
mov rcx, qword [r10 + 0x30]
mov r8, qword [rsp + 0x60]
cmp rcx, r8
ja 0x14037a580
mov edx, dword [0x1405759d0]
add edx, dword [r10 + 0x40]
add rdx, rcx
cmp rdx, r8
mov rdx, qword [rsp + 0x30]
cmovae rdx, rcx
mov qword [rsp + 0x30], rdx
movzx ecx, al
cmovae ecx, r9d
movzx eax, byte [0x140578dae]
mov edx, eax
xor dl, cl
and al, cl
add al, al
add al, dl
jmp 0x14037a580
test sil, sil
je 0x14037a950
jmp 0x14037a8d0
xor eax, eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret