Function at 0x140399cf0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov esi, edx
test ecx, ecx
je 0x140399ded
test esi, esi
je 0x140399e01
movzx ecx, byte [0x1405470bb]
mov eax, dword [0x140547824]
mov edx, dword [0x140548430]
add eax, edx
add eax, 0x5a06a4cb
cdqe
add rax, qword [0x140547878]
mov edx, 0x222fd8eb
call qword [case.0x140303ece.0]
test al, 1
jne 0x140399ebd
xor ebp, ebp
mov r14d, 0x75c0
mov r15d, 0x3cd10c57
lea rsi, [rsp + 0x57]
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
mov r12b, 0x8e
nop dword [rax + rax]
test bpl, bpl
jne 0x140399de0
nop word cs:[rax + rax]
mov eax, dword [0x140547868]
add eax, r14d
cdqe
add rax, qword [0x1405478f0]
mov r9d, dword [0x140548430]
add r9d, r15d
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call qword [case.0x140303ece.0]
mov eax, dword [0x140548430]
mov ecx, eax
xor ecx, 0x5a062f25
not eax
and eax, 0x25f9d0da
or eax, ecx
not eax
lea eax, [rcx + rax*2]
cmp dword [rsp + 0x40], eax
jge 0x140399de0
test byte [rsp + 0x3f], 1
jne 0x140399e39
cmp byte [rsp + 0x57], 0x7a
jne 0x140399d70
jmp 0x140399ebd
mov al, 0x57
lock cmpxchg byte [0x1405470bb], r12b
jmp 0x140399d80
mov eax, dword [0x14055f49c]
cmp eax, 0x49
jg 0x14039a180
jmp 0x14039a11a
movzx eax, byte [0x140546d0d]
cmp al, 0x5d
je 0x14039a49e
mov cl, 0x51
nop word cs:[rax + rax]
mov al, 0xd
lock cmpxchg byte [0x140546d0d], cl
je 0x140399ec9
cmp al, 0x5d
jne 0x140399e20
jmp 0x14039a49e
xor eax, eax
mov ebp, 0x75c0
lea rsi, [rsp + 0x3f]
lea rdi, [rsp + 0x40]
lea r14, [0x1405470b0]
mov r15d, 0x5a062f16
nop word [rax + rax]
movsxd rbx, eax
mov eax, dword [0x140547858]
add eax, ebp
cdqe
add rax, qword [0x1405478c8]
mov dword [rsp + 0x20], 0xc005cb1b
mov rcx, rbx
mov edx, ebx
mov r8, rsi
mov r9, rdi
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
xor al, byte [rcx]
mov byte [rbx + r14], al
mov eax, ebx
xor eax, 1
and ebx, 1
lea eax, [rax + rbx*2]
mov ecx, dword [0x140548430]
add ecx, r15d
cmp eax, ecx
jl 0x140399e60
mov al, 0x7a
xchg byte [0x1405470bb], al
lea rax, [0x1405470b0]
jmp 0x14039a43b
mov edi, 0x75c0
lea rsi, [rsp + 0x40]
mov ebx, 0x5a062f3d
nop dword [rax + rax]
mov eax, dword [0x14054786c]
add eax, edi
cdqe
add rax, qword [0x1405478e0]
mov rcx, rsi
mov edx, 0x96655d8a
call qword [case.0x140303ece.0]
mov eax, dword [0x140548430]
add eax, ebx
cmp dword [rsp + 0x40], eax
jge 0x140399ee0
lea r14, [0x140546d00]
lea r15, [0x14044f1b0]
lea rsi, [rsp + 0x40]
mov r12d, 0x75c0
mov r13d, 0x5a062f0c
lea rax, [fcn.140399cf0]
lea ebx, [rax + rax]
add ebx, 0x1560
xor edi, edi
jmp 0x140399f4a
inc edi
cmp edi, eax
jge 0x14039a095
mov eax, dword [0x140547838]
sub eax, dword [0x140548430]
add eax, 0xa5fa46b5
cdqe
add rax, qword [0x140547900]
mov ecx, 0x74b7b0b0
call qword [case.0x140303ece.0]
movsxd rbp, edi
xor eax, eax
test al, al
jne 0x140399fd0
nop dword [rax + rax]
movzx eax, byte [rbp + r14]
movzx ecx, byte [rbp + r15]
not al
mov edx, ecx
not dl
mov r8d, edx
xor r8b, al
xor al, cl
not al
and al, cl
and r8b, dl
or r8b, al
mov byte [rbp + r14], r8b
mov eax, dword [0x140548430]
mov ecx, 0x5a062f18
add eax, ecx
mov ecx, dword [0x14055f498]
mov edx, 0xf7538b15
sub edx, ecx
imul edx, ecx
test dl, 1
je 0x140399f40
nop
mov eax, dword [0x14054783c]
mov ecx, dword [0x140548430]
mov edx, ecx
xor edx, 0x5a05b94b
and ecx, 0x5a05b94b
lea ecx, [rdx + rcx*2]
sub eax, ecx
cdqe
add rax, qword [0x140547888]
mov ecx, edi
mov rdx, rsi
mov r8d, 0x7a287921
call qword [case.0x140303ece.0]
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x140547834]
add eax, r12d
cdqe
add rax, qword [0x1405478e8]
mov rdx, rsi
mov r8d, 0x3824b160
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x40]
movzx ecx, byte [rbp + r15]
sub cl, al
shl al, cl
movzx r8d, byte [0x140548434]
sub r8b, al
add r8b, cl
add r8b, 0x56
mov eax, r8d
shl al, cl
mov ecx, eax
shl r8b, cl
mov edx, r8d
shl dl, cl
mov ecx, edx
shl r8b, cl
mov eax, r8d
sub al, dl
mul dl
mov ecx, eax
xor cl, al
not cl
and cl, r8b
xor cl, al
mov byte [rbp + r14], cl
mov eax, dword [0x140548430]
add eax, r13d
xor eax, ebx
not eax
test eax, ebx
jne 0x140399fd0
jmp 0x140399f80
mov eax, 0x7aa83d8
sub eax, dword [0x140547820]
mov ecx, eax
xor ecx, 0xf8550668
and eax, 0x78550668
lea eax, [rcx + rax*2]
mov ecx, dword [0x140548430]
neg eax
add eax, ecx
add eax, 0x5a062f0b
cdqe
add rax, qword [0x1405478f8]
mov ecx, 0xb223324
call qword [case.0x140303ece.0]
nop word cs:[rax + rax]
mov eax, dword [0x140547840]
mov ecx, dword [0x140548430]
add eax, ecx
add eax, 0x5a06a4cb
cdqe
add rax, qword [0x1405478c0]
mov ecx, 0xccf5e1b4
call qword [case.0x140303ece.0]
test al, 1
je 0x14039a0e0
xor eax, eax
test al, al
je 0x14039a44c
jmp 0x14039a477
mov eax, dword [0x140547828]
mov ecx, dword [0x140548430]
mov edx, ecx
xor edx, 0xa06633d2
and ecx, 0x206633d2
lea ecx, [rdx + rcx*2]
add eax, ecx
add eax, 0xb9a070f9
cdqe
add rax, qword [0x1405478b0]
lea rdx, [rsp + 0x40]
mov ecx, esi
mov r8d, 0xad7c5526
call qword [case.0x140303ece.0]
mov eax, 0x5a062f0c
add eax, dword [0x140548430]
lea rcx, [fcn.140399cf0]
add ecx, ecx
add ecx, 0x1da0
xor ecx, eax
not ecx
test ecx, eax
je 0x14039a18d
nop dword [rax]
mov eax, dword [0x14055f49c]
cmp eax, 0x1d
jge 0x14039a180
jmp 0x14039a11a
test byte [rsp + 0x40], 1
je 0x14039a1f6
movzx eax, byte [0x140546cc2]
cmp al, 0xf3
je 0x14039a434
mov ebx, 0x75c0
lea rsi, [rsp + 0x40]
lea rdi, [rsp + 0x3f]
nop word cs:[rax + rax]
mov eax, dword [0x140547850]
add eax, ebx
cdqe
add rax, qword [0x1405478a0]
mov rcx, rsi
mov rdx, rdi
mov r8d, 0xf033b730
call qword [case.0x140303ece.0]
cmp byte [rsp + 0x41], 0
jne 0x14039a243
cmp byte [rsp + 0x3f], 0xf3
jne 0x14039a1c0
jmp 0x14039a434
movzx eax, byte [0x140546eb5]
cmp al, 0x13
je 0x14039a423
mov edi, 0x75c0
lea rsi, [rsp + 0x40]
nop
mov eax, dword [0x140547830]
add eax, edi
cdqe
add rax, qword [0x1405478b8]
mov rcx, rsi
mov edx, 0xfb53b4d8
call qword [case.0x140303ece.0]
test al, 1
jne 0x14039a397
cmp byte [rsp + 0x40], 0x13
jne 0x14039a210
jmp 0x14039a423
xor ebx, ebx
mov ebp, 0x75c0
lea r15, [0x140546cc0]
lea r12, [0x14044f170]
jmp 0x14039a26f
mov ebx, dword [rsp + 0x40]
test byte [rsp + 0x3f], 1
jne 0x14039a42c
mov eax, dword [0x140547860]
add eax, ebp
cdqe
add rax, qword [0x1405478a8]
mov ecx, 0xabcc26d4
call qword [case.0x140303ece.0]
mov eax, dword [0x14055f49c]
movsxd rbx, ebx
cmp eax, 0x2e
jg 0x14039a310
nop dword [rax]
movzx ecx, byte [rbx + r15]
movzx edx, byte [rbx + r12]
mov eax, dword [0x140547854]
add eax, ebp
cdqe
add rax, qword [0x140547880]
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], 0xc17445fa
mov r8d, ebx
mov r9, rdi
call qword [case.0x140303ece.0]
movzx edx, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x140547864]
add eax, ebp
cdqe
add rax, qword [0x140547890]
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], 0x262613a1
mov r8d, ebx
mov r9, rsi
call qword [case.0x140303ece.0]
test al, 1
jne 0x14039a260
movzx r14d, byte [rbx + r15]
movzx edx, byte [rbx + r12]
mov r13d, r14d
neg r13b
mov ecx, r14d
sub cl, dl
mov eax, dword [0x140547848]
add eax, ebp
cdqe
add rax, qword [0x140547898]
mov r8, rsi
mov r9d, 0xc88767c9
call qword [case.0x140303ece.0]
movzx ecx, byte [rsp + 0x40]
lea eax, [r14 - 1]
mov edx, eax
and dl, cl
mov r8d, r13d
xor r13b, cl
not cl
and r8b, cl
or r8b, dl
and cl, al
or cl, r13b
not cl
add cl, cl
add cl, r8b
sub cl, r14b
mov edx, r14d
shl dl, cl
sub r14b, dl
mov eax, r14d
mul dl
movzx ecx, byte [0x140548434]
sub cl, al
add cl, dl
add cl, 0x56
shl al, cl
xor al, cl
mov byte [rbx + r15], al
jmp 0x14039a2a0
xor eax, eax
lea rdi, [0x140546ea0]
lea rbx, [0x14044f330]
mov ebp, 0x75c0
mov r14d, 0xf68a0553
lea rsi, [rsp + 0x40]
nop word [rax + rax]
movsxd r8, eax
movzx edx, byte [r8 + rdi]
lea rcx, [rbx + r8]
mov eax, dword [0x140547844]
add eax, ebp
cdqe
add rax, qword [0x140547908]
mov r9d, dword [0x140548430]
add r9d, r14d
mov dword [rsp + 0x20], r9d
mov r9, rsi
call qword [case.0x140303ece.0]
mov eax, dword [rsp + 0x40]
cmp eax, 0x15
jl 0x14039a3c0
mov eax, 0x75c0
add eax, dword [0x14054785c]
cdqe
add rax, qword [0x1405478d0]
mov ecx, 0x2a59dff0
add ecx, dword [0x140548430]
call qword [case.0x140303ece.0]
lea rax, [0x140546ea0]
jmp 0x14039a43b
mov al, 0xf3
xchg byte [0x140546cc2], al
lea rax, [0x140546cc0]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 0x5d
xchg byte [0x140546d0d], al
mov eax, 0x75c0
add eax, dword [0x14054784c]
cdqe
add rax, qword [0x140547870]
mov ecx, 0xb88057e0
call qword [case.0x140303ece.0]
test al, 1
jne 0x14039a49e
mov eax, 0x75c0
add eax, dword [0x14054782c]
cdqe
add rax, qword [0x1405478d8]
mov ecx, 0xafd191db
add ecx, dword [0x140548430]
call qword [case.0x140303ece.0]
jmp 0x14039a44c
lea rax, [0x140546d00]
jmp 0x14039a43b