Function at 0x1401d4670
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
test ecx, ecx
je 0x1401d46a0
test edx, edx
je 0x1401d4798
mov eax, dword [0x14055f814]
cmp eax, 0x2a
jg 0x1401d4c40
jmp 0x1401d4c21
mov eax, 0x4edefa7b
add eax, dword [0x14050924c]
cmp edx, eax
jne 0x1401d4850
movzx eax, byte [0x1405090c2]
cmp al, 0x9b
je 0x1401d4b43
mov ebp, 0x4edefa7d
mov r14b, 6
lea rsi, [rsp + 0x40]
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
mov ecx, dword [0x14055f810]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x14050924c]
add ecx, ebp
xor edx, edx
div ecx
test edx, edx
jne 0x1401d474e
mov al, 0x8f
lock cmpxchg byte [0x1405090c2], r14b
mov ebx, eax
sete r15b
mov rcx, rsi
mov rdx, rdi
mov r8d, 0xcff27941
mov r9d, 0xa99fa2c7
call fcn.1401d4f80
mov eax, dword [rsp + 0x40]
imul eax, dword [rsp + 0x30]
mov ecx, dword [0x14050924c]
mov edx, ecx
xor edx, 0x31210582
and edx, ecx
xor ecx, 0x4edefa7d
lea ecx, [rcx + rdx*2]
xor edx, edx
div ecx
test edx, edx
je 0x1401d4770
mov edx, dword [0x14050924c]
lea ecx, [rdx + 0xe228d15]
add edx, 0x466ff0a9
call fcn.1401d54a0
test al, 1
je 0x1401d46e0
jmp 0x1401d46fc
test r15b, r15b
jne 0x1401d496a
mov ecx, ebx
mov edx, 0xee00fed2
mov r8d, 0xa05c573c
call fcn.1401d5030
test al, 1
je 0x1401d46e0
jmp 0x1401d4b43
movzx eax, byte [0x140509170]
cmp al, 0xf6
je 0x1401d4956
lea rsi, [rsp + 0x30]
xor ebx, ebx
jmp 0x1401d47c2
movzx eax, byte [0x140509248]
add al, 0xfc
cmp bpl, al
je 0x1401d4956
mov rcx, rsi
mov edx, 0xefd0c5f8
mov r8d, 0xe13d9a8d
call fcn.1401d5560
cmp byte [rsp + 0x31], 0
jne 0x1401d4889
movzx ebp, byte [rsp + 0x30]
nop word cs:[rax + rax]
mov r8d, dword [0x14050924c]
lea edx, [r8 - 0x2a4dd554]
add r8d, 0xa674c364
mov rcx, rsi
call fcn.1401d4f20
mov edi, dword [rsp + 0x30]
mov r9d, dword [0x14050924c]
lea r8d, [r9 - 0x4f356881]
add r9d, 0xf1c5ae5a
mov ecx, edi
mov rdx, rsi
call fcn.1401d5540
imul edi, dword [rsp + 0x30]
test dil, 1
jne 0x1401d4843
test bl, bl
je 0x1401d47b0
mov eax, dword [0x14055f814]
cmp eax, 0x5c
jge 0x1401d47f0
jmp 0x1401d483b
movzx eax, byte [0x1405090b6]
movzx ecx, byte [0x140509248]
add cl, 0xf4
cmp al, cl
je 0x1401d4bd1
mov cl, 0xf6
nop dword [rax + rax]
mov al, 0xc
lock cmpxchg byte [0x1405090b6], cl
je 0x1401d4ad3
cmp al, 0xee
jne 0x1401d4870
jmp 0x1401d4bd1
xor eax, eax
lea rcx, [0x140509160]
lea rdx, [0x140427a20]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x1401d48b8
inc rax
jmp 0x1401d48a0
lea rax, [fcn.1401d4670]
lea esi, [rax + rax]
add esi, 0xf20
mov edi, esi
not edi
mov ebx, 0x7a578b23
nop word cs:[rax + rax]
mov eax, dword [0x14055f810]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d4929
mov edx, dword [0x14050924c]
lea ecx, [rdx - 0x364ec3fa]
add edx, 0xe77cb2c1
call fcn.14008c870
mov eax, dword [0x14050924c]
lea ecx, [rax + 0x4edefa7c]
mov edx, esi
xor edx, ecx
not ecx
and ecx, edi
or ecx, edx
not ecx
add eax, 0x4edefa7b
cmp ecx, eax
je 0x1401d494e
mov eax, dword [0x14055f814]
mov ecx, dword [0x14050924c]
add ecx, ebx
mov edx, ecx
xor edx, 0xd4876f91
and ecx, 0x54876f91
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x1401d48e0
jmp 0x1401d48f1
mov al, 0xf6
xchg byte [0x140509170], al
mov eax, dword [0x14055f814]
cmp eax, 0x43
jle 0x1401d4bdd
jmp 0x1401d4c04
xor ebp, ebp
lea rax, [fcn.1401d4670]
lea r12d, [rax + rax]
add r12d, 0x460
mov dword [rsp + 0x44], r12d
not r12d
lea r13, [0x1405090c0]
lea rsi, [rsp + 0x30]
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
jmp 0x1401d49aa
test r15b, 1
jne 0x1401d4b1f
movsxd r14, ebp
test dword [rsp + 0x44], r12d
jne 0x1401d4a65
nop dword [rax + rax]
movzx ebp, byte [r14 + r13]
mov eax, dword [0x14050924c]
lea r8d, [rax + 0x5a644612]
mov ecx, eax
xor ecx, 0x28ad79c9
and eax, 0x28ad79c9
lea r9d, [rcx + rax*2]
mov ecx, r14d
mov rdx, rsi
call fcn.1401d5260
add bpl, byte [rsp + 0x30]
mov byte [r14 + r13], bpl
lea eax, [r14 + 0x6a2e06f4]
mov ecx, eax
xor ecx, 0x95d1f90d
and eax, 0x15d1f90d
lea ebp, [rcx + rax*2]
mov dword [rsp + 0x28], 0x2bd5cd9d
mov dword [rsp + 0x20], 0x5bf4ac0a
mov ecx, ebp
mov rdx, rdi
mov r8, rbx
mov r9, rsi
call fcn.1401d5580
mov ecx, dword [rsp + 0x40]
imul ecx, dword [rsp + 0x30]
movzx r15d, byte [rsp + 0x3f]
mov r9d, dword [0x14050924c]
lea r8d, [r9 + 0x54b5b2e8]
add r9d, 0xd09ac9b3
mov rdx, rsi
call fcn.1401383d0
cmp dword [rsp + 0x30], 0
je 0x1401d49a0
mov ecx, r14d
mov rdx, rsi
mov r8d, 0x3615f546
mov r9d, 0xc0c98bc5
call fcn.1401d54c0
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax]
lea rax, [0x140427990]
movzx eax, byte [r14 + rax]
mov ebp, ecx
neg bpl
lea edx, [rcx - 1]
xor dl, bpl
and dl, al
xor dl, bpl
and bpl, al
add bpl, bpl
add bpl, dl
mov dword [rsp + 0x20], 0x42196e76
mov edx, ebp
mov r8, rsi
mov r9d, 0xdadc3c69
call fcn.1401d4fc0
mov eax, ebp
sub al, byte [rsp + 0x30]
add al, bpl
mov byte [r14 + r13], al
jmp 0x1401d49c0
xor eax, eax
lea rcx, [0x1405090b0]
lea rdx, [0x140427980]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r8b
mov r10d, r8d
and r10b, r9b
or r8b, r9b
not r8b
or r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 5
jg 0x1401d4b4c
inc rax
jmp 0x1401d4af0
mov eax, dword [0x14055f814]
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x1401d4b30
mov ecx, 0x84ba9b88
mov edx, 0x786e299e
call fcn.1401d54e0
lea rax, [0x1405090c0]
jmp 0x1401d4b59
mov eax, dword [0x14055f814]
cmp eax, 0x26
jge 0x1401d4ba0
jmp 0x1401d4b6a
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 0xee
xchg byte [0x1405090b6], al
mov r8d, dword [0x14050924c]
lea edx, [r8 + 0x2cdb7c9c]
add r8d, 0xce23dc05
lea rcx, [rsp + 0x30]
call fcn.1401d5530
cmp dword [rsp + 0x30], 0x46
jl 0x1401d4bd1
nop dword [rax + rax]
mov al, 0xee
xchg byte [0x1405090b6], al
mov eax, dword [0x14055f814]
mov ecx, dword [0x14050924c]
mov edx, ecx
xor edx, 0xab19eb67
and ecx, 0x2b19eb67
lea ecx, [rdx + rcx*2]
add ecx, 0xa3c50f61
cmp eax, ecx
jge 0x1401d4ba0
jmp 0x1401d4b6a
lea rax, [0x1405090b0]
jmp 0x1401d4b59
mov eax, dword [0x14055f814]
mov ecx, dword [0x14050924c]
mov edx, ecx
xor edx, 0x1820904d
and ecx, 0x1820904d
lea ecx, [rdx + rcx*2]
add ecx, 0x36be6a3a
cmp eax, ecx
jl 0x1401d4c15
mov ecx, 0xf06a41b8
mov edx, 0xe1ec889a
call fcn.1401d4f70
jmp 0x1401d4bdd
lea rax, [0x140509160]
jmp 0x1401d4b59
lea rcx, [rsp + 0x30]
mov edx, 0xf3f73b13
mov r8d, 0xb3192f99
call fcn.1401d5490
mov al, 1
test al, al
jne 0x1401d4c54
nop dword [rax]
movzx eax, byte [0x1405090f0]
mov eax, dword [0x14055f814]
cmp eax, 0x38
jge 0x1401d4c40
jmp 0x1401d4c21
cmp byte [rsp + 0x30], 0x39
je 0x1401d4cb9
mov cl, 0xc6
nop dword [rax]
mov al, 0xb8
lock cmpxchg byte [0x1405090f0], cl
je 0x1401d4c72
cmp al, 0x39
jne 0x1401d4c60
jmp 0x1401d4cb9
xor edx, edx
lea rax, [0x1405090e0]
lea rcx, [0x1404279b0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x14050924c]
add edx, r8d
add edx, 0x4edefa7c
cmp edx, 0x10
jl 0x1401d4c90
mov al, 0x39
xchg byte [0x1405090f0], al
lea rax, [0x1405090e0]
jmp 0x1401d4b59