Function at 0x14037d200
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
mov esi, r9d
mov r12d, dword [rsp + 0xb0]
test ecx, ecx
je 0x14037d259
test edx, edx
je 0x14037d435
movzx eax, byte [0x14054561d]
cmp al, 0x6a
je 0x14037d5d9
mov cl, 0xb7
nop dword [rax + rax]
mov al, 0xd2
lock cmpxchg byte [0x14054561d], cl
je 0x14037d538
cmp al, 0x6a
jne 0x14037d240
jmp 0x14037d5d9
test edx, edx
je 0x14037d49e
movzx eax, byte [0x1405455ed]
nop dword [rax + rax]
cmp al, 0x67
je 0x14037d429
movzx ecx, byte [0x1405456ec]
mov eax, r12d
not al
mov edx, r12d
xor dl, 0x54
and dl, al
mov r8d, eax
and r8b, 0xa1
mov eax, r12d
and al, 0x5e
or al, r8b
mov r8d, eax
xor r8b, cl
and al, cl
add al, al
add al, r8b
mov r8d, r12d
and r8b, 0xab
or r8b, dl
mov edx, r8d
xor dl, cl
and r8b, cl
add r8b, r8b
add r8b, dl
lock cmpxchg byte [0x1405455ed], r8b
jne 0x14037d270
xor r14d, r14d
mov eax, esi
not eax
mov edx, esi
xor edx, 0xf5ad7c67
mov ecx, eax
and ecx, 0xa528398
or edx, ecx
not edx
or edx, ecx
mov dword [rsp + 0x44], edx
mov r13d, r12d
not r13d
mov ecx, r13d
and ecx, 0xcc395c81
mov ebx, r12d
and ebx, 0x33c6a37e
or ebx, ecx
and eax, 0x414f304b
mov ecx, esi
and ecx, 0xbeb0cfb4
or ecx, eax
mov dword [rsp + 0x40], ecx
mov eax, r12d
xor eax, 0xcc395c81
mov dword [rsp + 0x3c], eax
mov eax, esi
xor eax, 0xbfb62abe
mov dword [rsp + 0x38], eax
mov eax, dword [0x1405456e8]
add eax, ebx
mov ecx, dword [0x14054565c]
add ecx, esi
add eax, ecx
add eax, 0xffffcdb4
cdqe
add rax, qword [0x1405456b8]
mov ecx, r14d
lea r15, [rsp + 0x30]
mov rdx, r15
mov r8d, dword [rsp + 0x44]
call qword [case.0x140303ece.0]
mov rax, qword [rsp + 0x30]
lea rbp, [0x1405455e0]
movzx edi, byte [rax + rbp]
movsxd r14, r14d
mov eax, dword [0x1405456e8]
add eax, dword [rsp + 0x3c]
mov ecx, dword [0x140545660]
add ecx, esi
add eax, ecx
add eax, 0xffffcdb4
cdqe
add rax, qword [0x1405456a8]
mov rcx, r14
mov rdx, r15
mov r8d, dword [rsp + 0x40]
call qword [case.0x140303ece.0]
add dil, byte [rsp + 0x30]
mov byte [r14 + rbp], dil
mov eax, r14d
xor eax, 1
and r14d, 1
lea r14d, [rax + r14*2]
mov eax, dword [0x1405456e8]
mov ecx, r12d
xor ecx, 0xcc3a934d
and ecx, r13d
mov edx, r12d
xor edx, 0x33c56cb2
mov r8d, r13d
and r8d, 0xcc3a934d
or r8d, edx
not r8d
or r8d, ecx
add r8d, eax
mov ecx, esi
sub ecx, r8d
add ecx, dword [0x140545658]
add eax, ebx
add eax, ecx
cdqe
add rax, qword [0x1405456b0]
mov ecx, r14d
mov edx, dword [rsp + 0x38]
call qword [case.0x140303ece.0]
test al, 1
je 0x14037d330
mov al, 0x67
xchg byte [0x1405455ed], al
lea rax, [0x1405455e0]
jmp 0x14037d713
movzx eax, byte [0x140545583]
xor r12b, 0x35
add r12b, byte [0x1405456ec]
cmp al, r12b
je 0x14037d673
mov bl, 0xb
mov edi, esi
xor edi, 0xa48fc7ea
nop word [rax + rax]
mov al, 0xd5
lock cmpxchg byte [0x140545583], bl
je 0x14037d5e5
mov ecx, dword [0x140545640]
add ecx, esi
add ecx, 0xffffcdb4
movsxd r8, ecx
add r8, qword [0x140545688]
mov ecx, eax
mov edx, edi
mov rax, r8
call qword [case.0x140303ece.0]
test al, 1
je 0x14037d460
jmp 0x14037d673
mov ecx, esi
xor ecx, 0xc4ecf896
mov eax, dword [0x140545650]
add eax, esi
add eax, 0xffffcdb4
cdqe
add rax, qword [0x1405456a0]
call qword [case.0x140303ece.0]
test al, 1
jne 0x14037d70c
mov ebx, r12d
xor ebx, 0xbc0fa4ad
xor r12d, 0xcc395c81
lea rdi, [rsp + 0x30]
nop
mov eax, dword [0x1405456e8]
lea ecx, [rbx + rax]
mov edx, ecx
xor edx, ecx
not edx
and edx, esi
xor edx, ecx
mov ecx, dword [0x140545648]
add ecx, esi
mov r8d, r12d
xor r8d, eax
and eax, r12d
lea eax, [r8 + rax*2]
add eax, ecx
add eax, 0xffffcdb4
cdqe
add rax, qword [0x140545698]
mov rcx, rdi
call qword [case.0x140303ece.0]
cmp byte [rsp + 0x31], 0
jne 0x14037d67f
cmp byte [rsp + 0x30], 0x3c
jne 0x14037d4e0
jmp 0x14037d70c
xor eax, eax
lea r14, [0x140545610]
lea r15, [0x14044ebf0]
mov edi, esi
xor edi, 0xd24a1d0b
mov ebp, r12d
xor ebp, 0xcc395c81
lea rbx, [rsp + 0x30]
xor r12d, 0xcc395c8e
nop word cs:[rax + rax]
movsxd r13, eax
movzx edx, byte [r13 + r14]
lea rcx, [r15 + r13]
mov eax, dword [0x1405456e8]
add eax, ebp
mov r8d, dword [0x14054564c]
add r8d, esi
add eax, r8d
add eax, 0xffffcdb4
cdqe
add rax, qword [0x140545678]
mov r8, rbx
mov r9d, edi
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x30]
mov byte [r13 + r14], al
mov eax, r13d
xor eax, 1
and r13d, 1
lea eax, [rax + r13*2]
mov ecx, dword [0x1405456e8]
add ecx, r12d
cmp eax, ecx
jl 0x14037d570
mov al, 0x6a
xchg byte [0x14054561d], al
lea rax, [0x140545610]
jmp 0x14037d713
xor ecx, ecx
lea r12, [0x140545580]
lea r13, [0x14044eb60]
mov edi, esi
xor edi, 0x349aa459
mov ebx, esi
xor ebx, 0xa26bca1c
lea r14, [rsp + 0x30]
nop word [rax + rax]
movsxd r15, ecx
movzx edx, byte [r15 + r12]
lea rcx, [r15 + r13]
mov eax, dword [0x140545654]
add eax, esi
add eax, 0xffffcdb4
cdqe
add rax, qword [0x140545680]
mov r8d, r15d
mov r9d, edi
call qword [case.0x140303ece.0]
mov eax, dword [0x140545664]
add eax, esi
add eax, 0xffffcdb4
cdqe
add rax, qword [0x140545670]
mov ecx, r15d
mov rdx, r14
mov r8d, ebx
call qword [case.0x140303ece.0]
mov ecx, dword [rsp + 0x30]
test al, 1
je 0x14037d610
mov al, 0x19
xchg byte [0x140545583], al
lea rax, [0x140545580]
jmp 0x14037d713
xor edi, edi
mov ebx, esi
xor ebx, 0xe57c0345
lea r14, [rsp + 0x2f]
lea r15, [rsp + 0x30]
lea r13, [0x140545590]
nop word [rax + rax]
mov eax, dword [0x140545644]
add eax, esi
mov ecx, dword [0x1405456e8]
add ecx, r12d
add eax, ecx
add eax, 0xffffcdb4
cdqe
add rax, qword [0x140545690]
mov ecx, edi
mov rdx, r14
mov r8, r15
mov r9d, ebx
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x2f]
mov rcx, qword [rsp + 0x30]
movzx ecx, byte [rcx]
mov edx, eax
not dl
not cl
mov r8d, edx
xor r8b, cl
and r8b, dl
and cl, al
or cl, r8b
mov byte [rdi + r13], cl
lea eax, [rdi + 1]
cmp eax, 0x22
jg 0x14037d704
inc rdi
jmp 0x14037d6a0
mov al, 0x3c
xchg byte [0x1405455b3], al
lea rax, [0x140545590]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret