Function at 0x140303590
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov eax, ecx
and eax, 0xf
cmp eax, 4
jbe 0x1403035d4
xor ebx, ebx
cmp eax, 6
jbe 0x1403035f1
cmp eax, 7
jne 0x140303699
cmp qword [0x1407913b0], 0
jne 0x140303ba9
movzx eax, byte [0x140743b09]
jmp 0x140303b22
cmp eax, 2
jae 0x140303609
xor ebx, ebx
test eax, eax
je 0x1403036d2
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
jmp 0x140303cde
cmp eax, 5
jne 0x140303622
cmp qword [0x1407913a8], 0
jne 0x1403038ea
jmp 0x14030376e
mov r9d, 0xc8508f65
xor esi, esi
cmp eax, 2
je 0x14030362c
cmp eax, 3
jne 0x140303631
xor ebx, ebx
jmp 0x14030377b
mov r9d, 0xf9dd08e0
xor esi, esi
jmp 0x140303640
mov r8, rdx
jmp 0x140303640
mov qword [rdx], r8
mov rsi, rdx
nop word [rax + rax]
mov r10, r8
mov ecx, r9d
mov r8, qword [r10]
mov eax, r9d
and eax, 0xf
cmp eax, 4
jbe 0x140303670
cmp eax, 6
ja 0x14030368e
mov r9d, 0xf9dd08e0
mov r10, r8
cmp eax, 5
jne 0x140303643
jmp 0x14030375e
cmp eax, 2
jb 0x1403036c8
mov r9d, 0xc8508f65
mov r10, rdx
je 0x140303643
cmp eax, 4
jne 0x140303779
mov qword [rdx], r8
jmp 0x140303640
mov bl, 1
cmp eax, 7
je 0x1403035ba
mov ebp, ecx
cmp eax, 8
jbe 0x140303726
cmp qword [0x1407913a0], 0
jne 0x140303b0b
movzx eax, byte [0x140743aa9]
cmp al, 0x1b
mov ecx, ebp
je 0x140303948
jmp 0x140303900
mov bl, 1
test eax, eax
jne 0x1403035e3
cmp qword [0x140791398], 0
jne 0x140303cd3
movzx r9d, byte [0x140743a79]
cmp r9b, 0x56
je 0x140303bd7
mov r10b, 0x9e
nop word cs:[rax + rax]
mov al, 0xda
lock cmpxchg byte [0x140743a79], r10b
je 0x1403038f8
cmp al, 0x56
je 0x140303bd7
test cl, 0x40
jne 0x140303700
mov rdi, rdx
jmp 0x14030395a
mov r14, r8
mov r8d, dword [0x140743b74]
xor r8, 0x445cfead
mov ecx, 0x77653fc1
mov rdi, rdx
call fcn.140303590
test rax, rax
mov ecx, ebp
je 0x140303940
test cl, 0x20
jne 0x140303786
xor eax, eax
mov rdx, rdi
jmp 0x140303910
mov bl, 1
cmp qword [0x1407913a8], 0
jne 0x1403038ea
test cl, 0x40
je 0x140303cde
jmp 0x1403037a2
mov bl, 1
mov eax, dword [0x140743b70]
jmp 0x140303cde
mov rcx, rax
mov rdi, r14
mov rdx, r14
call sub.KERNEL32.dll_GetProcAddress
mov ecx, ebp
mov r8, r14
test cl, 0x40
je 0x140303cde
movzx eax, byte [0x140743ad9]
cmp al, 0xa3
je 0x1403037e9
mov cl, 0xd
nop
mov al, 0xfb
lock cmpxchg byte [0x140743ad9], cl
je 0x1403037c2
cmp al, 0xa3
jne 0x1403037b0
jmp 0x1403037e9
movq xmm0, qword [0x140743ad0]
paddb xmm0, xmmword [0x1405f8320]
movq qword [0x140743ad0], xmm0
add byte [0x140743ad8], 0xfc
mov al, 0xa3
xchg byte [0x140743ad9], al
mov rdi, r8
movzx eax, byte [0x140743af5]
cmp al, 0xa
je 0x1403038c8
mov cl, 0x99
nop dword [rax]
mov al, 0x9f
lock cmpxchg byte [0x140743af5], cl
je 0x140303815
cmp al, 0xa
jne 0x140303800
jmp 0x1403038c8
mov ecx, 0x24402f43
mov r8d, 0x24402f42
xor r10d, r10d
movabs r11, 0x642c8590b21642c9
lea r14, [0x1405f8380]
lea r15, [0x140743ae0]
nop dword [rax + rax]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, r14
add rax, 0x24402f3b
movzx edx, byte [r10 + r15]
xor dl, byte [r10 + rax + 7]
xor dl, 0x76
mov byte [r10 + r15], dl
cmp r10, 0x14
je 0x1403038c0
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, r14
add rax, 0x24402f43
movzx edx, byte [r10 + r15 + 1]
xor dl, byte [rax + r10]
xor dl, 0x76
mov byte [r10 + r15 + 1], dl
add r10, 2
add rcx, 2
add r8, 2
jmp 0x140303840
mov al, 0xa
xchg byte [0x140743af5], al
lea rdx, [0x140743ad0]
lea r8, [0x140743ae0]
mov ecx, 0x352f4238
call fcn.140303590
mov qword [0x1407913a8], rax
mov r8, rdi
mov rcx, r8
call qword [0x1407913a8]
jmp 0x140303cdc
mov eax, r9d
jmp 0x140303b19
mov r8b, 0x39
mov al, 0x53
lock cmpxchg byte [0x140743aa9], r8b
je 0x140303916
cmp al, 0x1b
jne 0x140303900
jmp 0x140303948
mov rdi, rdx
movq xmm0, qword [0x140743aa0]
paddb xmm0, xmmword [0x1405f8330]
movq qword [0x140743aa0], xmm0
add byte [0x140743aa8], 0x37
mov al, 0x1b
xchg byte [0x140743aa9], al
test cl, 0x10
mov rdx, rdi
jne 0x140303979
mov rdi, rdx
movzx eax, byte [0x140743aca]
cmp al, 0x12
je 0x140303ae9
mov cl, 0x8a
nop dword [rax]
mov al, 0xaa
lock cmpxchg byte [0x140743aca], cl
je 0x140303a2f
cmp al, 0x12
jne 0x140303960
jmp 0x140303ae9
test cl, cl
jns 0x140303cdc
mov rdi, rdx
mov ecx, 0x2bc389ee
mov r8d, 0x2bc389ed
xor r10d, r10d
movabs r11, 0x642c8590b21642c9
lea r14, [0x1405f83a0]
lea r15, [0x140743b10]
nop word [rax + rax]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, r14
movzx eax, byte [r10 + rax + 0x2bc389ed]
xor al, 0xf1
add byte [r10 + r15], al
cmp r10, 0x14
je 0x140303a22
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, r14
add rax, 0x2bc389ee
movzx eax, byte [rax + r10]
xor al, 0xf1
add byte [r10 + r15 + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x1403039b0
mov al, 0xa4
xchg byte [0x140743b25], al
jmp 0x140303b87
mov r9d, 0x80851b14
lea r10, [0x1405f8360]
mov r11d, 0x80851b15
add r11, r10
lea rcx, [r9 + 1]
xor r14d, r14d
movabs r15, 0x1a7b9611a7b9611b
lea r12, [0x140743ab0]
mov r8d, 0x80851b14
nop word cs:[rax + rax]
mov rax, rcx
mul r15
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul r13, rax, 0xffffffffffffffe3
mov rax, r8
mul r15
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe3
add rax, r10
add rax, r14
movzx edx, byte [r14 + r12]
xor dl, byte [r9 + rax]
movzx eax, byte [r14 + r12 + 1]
xor dl, 0xd7
xor al, byte [r11 + r13]
mov byte [r14 + r12], dl
xor al, 0xd7
mov byte [r14 + r12 + 1], al
add r14, 2
add r11, 2
add rcx, 2
add r8, 2
cmp r14, 0x1a
jne 0x140303a70
mov al, 0x12
xchg byte [0x140743aca], al
lea rdx, [0x140743aa0]
lea r8, [0x140743ab0]
mov ecx, 0x352f4238
call fcn.140303590
mov qword [0x1407913a0], rax
mov rdx, rdi
mov rcx, rdx
call qword [0x1407913a0]
jmp 0x140303cdc
test cl, 0x20
jne 0x140303bb7
cmp al, 0x93
je 0x140303b56
mov r9b, 0x1b
mov al, 0x7b
lock cmpxchg byte [0x140743b09], r9b
jne 0x140303b19
movabs rax, 0xbaca3fae339aa537
xor qword [0x140743b00], rax
xor byte [0x140743b08], 0x18
mov al, 0x93
xchg byte [0x140743b09], al
movzx eax, byte [0x140743b25]
cmp al, 0xa4
jne 0x140303b6b
mov rdi, rdx
test cl, 0x10
je 0x140303bd7
jmp 0x140303b87
mov cl, 2
nop dword [rax]
mov al, 0xd9
lock cmpxchg byte [0x140743b25], cl
je 0x140303981
cmp al, 0xa4
jne 0x140303b70
mov rdi, rdx
lea rdx, [0x140743b00]
lea r8, [0x140743b10]
mov ecx, 0x352f4238
call fcn.140303590
mov qword [0x1407913b0], rax
mov rdx, rdi
mov rcx, rdx
call qword [0x1407913b0]
jmp 0x140303cdc
movabs rax, 0x61e967cfda637e49
xor qword [0x140743a70], rax
xor byte [0x140743a78], 0x3f
mov al, 0x56
xchg byte [0x140743a79], al
mov rdi, r8
movzx eax, byte [0x140743a96]
cmp al, 0x64
je 0x140303cb1
mov cl, 0xb4
nop dword [rax + rax]
mov al, 0xb9
lock cmpxchg byte [0x140743a96], cl
je 0x140303c05
cmp al, 0x64
jne 0x140303bf0
jmp 0x140303cb1
mov ecx, 0x80851b14
lea r8, [rcx + 0x7a3f8a0e]
lea r9, [0x1405f8340]
mov r10d, 0xfac4a524
add r10, r9
add rcx, 0x7a3f8a10
xor r11d, r11d
movabs r14, 0x2e8ba2e8ba2e8ba3
lea r15, [0x140743a80]
mov r12d, 0xfac4a523
nop word cs:[rax + rax]
mov rax, rcx
mul r14
shr rdx, 2
imul r13, rdx, 0xffffffffffffffea
mov rax, r8
mul r14
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r9
add rax, r11
movzx edx, byte [r11 + r15]
xor dl, byte [r12 + rax]
movzx eax, byte [r11 + r15 + 1]
xor dl, 0xf7
xor al, byte [r10 + r13]
mov byte [r11 + r15], dl
xor al, 0xf7
mov byte [r11 + r15 + 1], al
add r11, 2
add r10, 2
add rcx, 2
add r8, 2
cmp r11, 0x16
jne 0x140303c50
mov al, 0x64
xchg byte [0x140743a96], al
lea rdx, [0x140743a70]
lea r8, [0x140743a80]
mov ecx, 0x352f4238
call fcn.140303590
mov qword [0x140791398], rax
mov r8, rdi
mov rcx, r8
call qword [0x140791398]
xor eax, eax
test bl, 1
cmove rsi, rax
mov rax, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret