Function at 0x140249300
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
mov ebp, dword [rsp + 0xa0]
test ecx, ecx
je 0x140249359
test edx, edx
je 0x1402493d9
movzx eax, byte [0x14052f87c]
cmp al, 0x4a
je 0x140249596
mov cl, 0xb8
nop word [rax + rax]
mov al, 0x50
lock cmpxchg byte [0x14052f87c], cl
je 0x1402494e5
cmp al, 0x4a
jne 0x140249340
jmp 0x140249596
mov r8d, esi
mov eax, dword [0x1405312d8]
mov r14d, ebp
xor r14d, 0xbbe91b76
mov r9d, esi
sub r9d, r14d
sub r9d, eax
add r9d, dword [0x14052fd88]
xor r8d, 0xf6ddd31c
mov ecx, ebp
xor ecx, 0xbbe8db82
add ecx, eax
add ecx, r9d
movsxd rax, ecx
add rax, qword [0x14052fdd0]
mov ecx, edx
mov edx, r8d
call qword [case.0x14013cbc3.0]
test al, 1
je 0x140249458
movzx eax, byte [0x14052f7ab]
cmp al, 0xc3
je 0x14024967e
mov cl, 0xb9
nop
mov al, 0x2e
lock cmpxchg byte [0x14052f7ab], cl
je 0x1402495ec
cmp al, 0xc3
jne 0x1402493c0
jmp 0x14024967e
movzx eax, byte [0x14052f3d0]
cmp al, 0xc5
je 0x1402495e0
mov r14b, 0xda
mov edi, esi
xor edi, 0xe92a87e1
nop word cs:[rax + rax]
mov al, 0x94
lock cmpxchg byte [0x14052f3d0], r14b
mov ebx, eax
sete dl
mov eax, dword [0x14052fd70]
add eax, esi
add eax, 0xffff4034
cdqe
add rax, qword [0x14052fdc0]
mov ecx, ebx
mov r8d, edi
call qword [case.0x14013cbc3.0]
test al, 1
jne 0x1402495a2
movzx eax, byte [0x1405312e8]
mov ecx, ebp
xor cl, 0xc2
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
cmp bl, cl
jne 0x140249400
jmp 0x1402495e0
mov edx, ebp
xor edx, 0x9fb38bed
add edx, dword [0x1405312d8]
xor edx, esi
mov eax, dword [0x14052fd8c]
add eax, esi
add eax, 0xffff4034
cdqe
add rax, qword [0x14052fdc8]
lea rcx, [rsp + 0x30]
call qword [case.0x14013cbc3.0]
cmp byte [rsp + 0x30], 0xd5
je 0x140249709
mov edi, esi
xor edi, 0x568cdd73
lea rbx, [rsp + 0x30]
nop word cs:[rax + rax]
mov eax, dword [0x14052fd7c]
add eax, esi
add eax, 0xffff4034
cdqe
add rax, qword [0x14052fda8]
mov rcx, rbx
mov edx, edi
call qword [case.0x14013cbc3.0]
test al, 1
jne 0x14024968a
cmp byte [rsp + 0x30], 0xd5
jne 0x1402494b0
jmp 0x140249709
xor edi, edi
mov eax, esi
not eax
mov ecx, eax
and ecx, 0x8d2add02
mov ebx, esi
and ebx, 0x72d522fd
or ebx, ecx
lea r14, [rsp + 0x30]
and eax, 0x11a32cbe
mov ebp, esi
and ebp, 0xee5cd341
or ebp, eax
lea r15, [rsp + 0x2f]
lea r12, [0x14052f870]
nop dword [rax]
mov eax, dword [0x14052fd80]
add eax, esi
add eax, 0xffff4034
cdqe
add rax, qword [0x14052fdb0]
mov ecx, edi
mov rdx, r14
mov r8d, ebx
call qword [case.0x14013cbc3.0]
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x14052fd78]
add eax, esi
add eax, 0xffff4034
cdqe
add rax, qword [0x14052fdb8]
mov dword [rsp + 0x20], ebp
mov edx, edi
mov r8, r15
mov r9, r14
call qword [case.0x14013cbc3.0]
movzx eax, byte [rsp + 0x2f]
mov rcx, qword [rsp + 0x30]
add al, byte [rcx]
mov byte [rdi + r12], al
lea eax, [rdi + 1]
cmp eax, 0xb
jg 0x14024958e
inc rdi
jmp 0x140249520
mov al, 0x4a
xchg byte [0x14052f87c], al
lea rax, [0x14052f870]
jmp 0x140249710
xor eax, eax
lea rcx, [0x14052f3c0]
lea rdx, [0x140443200]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x1402495d8
inc rax
jmp 0x1402495c0
mov al, 0xc5
xchg byte [0x14052f3d0], al
lea rax, [0x14052f3c0]
jmp 0x140249710
xor edi, edi
lea r15, [0x14052f790]
lea r12, [0x1404435a0]
xor ebp, 0xbbe8db83
mov ebx, esi
xor ebx, 0x8ed95b01
nop word [rax + rax]
movsxd rdi, edi
movzx eax, byte [rdi + r12]
mov ecx, eax
xor cl, al
not cl
and cl, byte [rdi + r15]
xor cl, al
mov byte [rdi + r15], cl
mov eax, dword [0x1405312d8]
add eax, ebp
add edi, eax
mov eax, dword [0x14052fd90]
add eax, esi
add eax, 0xffff4034
cdqe
add rax, qword [0x14052fda0]
mov ecx, edi
mov edx, ebx
call qword [case.0x14013cbc3.0]
test al, 1
je 0x140249610
add r14d, dword [0x1405312d8]
mov ecx, esi
sub esi, r14d
add esi, dword [0x14052fd84]
xor ecx, 0x8d8af571
movsxd rax, esi
add rax, qword [0x14052fde0]
call qword [case.0x14013cbc3.0]
lea rax, [0x14052f790]
jmp 0x140249710
xor edi, edi
lea r15, [0x14052f9c0]
mov ebx, esi
xor ebx, 0x4ba94f85
lea r14, [rsp + 0x30]
mov r12d, ebp
xor r12d, 0xbbe8dbb7
nop word [rax + rax]
movzx r13d, byte [rdi + r15]
mov eax, dword [0x14052fd74]
add eax, esi
add eax, 0xffff4034
cdqe
add rax, qword [0x14052fdd8]
mov ecx, edi
mov rdx, r14
mov r8d, ebx
call qword [case.0x14013cbc3.0]
xor r13b, byte [rsp + 0x30]
mov byte [rdi + r15], r13b
lea eax, [rdi + 1]
mov ecx, dword [0x1405312d8]
add ecx, r12d
cmp eax, ecx
jge 0x1402496f7
inc rdi
jmp 0x1402496b0
xor bpl, 0xf2
add bpl, byte [0x1405312e8]
xchg byte [0x14052f9cd], bpl
lea rax, [0x14052f9c0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret