Function at 0x140308b60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x268
mov r14, qword [rsp + 0x2e8]
mov r15, qword [rsp + 0x2e0]
mov rdi, qword [rsp + 0x2d8]
mov rbp, qword [rsp + 0x2d0]
mov rax, qword [0x14077ee28]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov eax, edx
and eax, 0xf
cmp eax, 4
jbe 0x140308c0d
cmp eax, 8
jbe 0x140308cea
cmp eax, 0xa
jbe 0x140308d14
cmp eax, 0xb
jne 0x140308e0d
cmp qword [0x140791458], 0
jne 0x14030959b
movzx eax, byte [0x1407444e9]
cmp al, 0xd3
je 0x140309533
mov r10b, 0x6f
mov al, 0xce
lock cmpxchg byte [0x1407444e9], r10b
je 0x14030950c
test dl, 0x10
jne 0x140309001
cmp al, 0xd3
jne 0x140308bea
jmp 0x140309533
cmp eax, 2
setae r13b
jb 0x140308c9e
cmp eax, 4
je 0x140308daa
cmp eax, 2
jne 0x140308df3
cmp rbp, r8
je 0x140309001
test dl, 0x40
je 0x140308e38
mov rax, qword [rbp]
mov rax, qword [rax]
mov rsi, rcx
mov rcx, rax
mov rdi, r8
call fcn.1400956e0
mov rax, qword [rdi]
mov rax, qword [rax]
mov qword [rsp + 0x30], rax
mov edx, 0x9f21c888
call fcn.140308b60
mov r14, rax
add r14d, dword [0x140790664]
mov rcx, r14
call fcn.140308a80
mov rcx, rsi
mov r8, rdi
mov rdx, qword [rbp]
mov qword [rdx], rax
mov rax, qword [rdi]
mov r9, qword [rax]
mov rax, qword [rbp]
mov rdi, qword [rax]
mov edx, 0xb8fbd3c1
mov eax, 1
test eax, eax
je 0x140308d96
cmp qword [0x140791430], 0
jne 0x1403095ff
movzx eax, byte [0x140744439]
cmp al, 0xc1
je 0x14030916c
mov r10b, 0x1a
nop word cs:[rax + rax]
mov al, 0x5e
lock cmpxchg byte [0x140744439], r10b
je 0x14030914c
cmp al, 0xc1
jne 0x140308cd0
jmp 0x14030916c
cmp eax, 7
jae 0x140308d55
cmp eax, 5
jne 0x140308e2f
mov rcx, r14
call sub.KERNEL32.dll_LoadLibraryA
xor r13d, r13d
test rax, rax
je 0x140309030
mov rcx, rax
jmp 0x140308d99
cmp eax, 9
jne 0x140308ecc
cmp qword [0x140791438], 0
jne 0x14030932b
movzx eax, byte [0x140744459]
cmp al, 0xb2
je 0x140309225
mov cl, 0x83
mov al, 0x9b
lock cmpxchg byte [0x140744459], cl
je 0x1403091fe
cmp al, 0xb2
jne 0x140308d3c
jmp 0x140309225
cmp eax, 8
jne 0x140308f19
cmp qword [0x140791428], 0
jne 0x1403096dd
movzx eax, byte [0x140744419]
cmp al, 0x2d
je 0x1403093d7
mov cl, 0x84
mov al, 0xad
lock cmpxchg byte [0x140744419], cl
je 0x140309336
cmp al, 0x2d
jne 0x140308d7d
jmp 0x1403093d7
mov rcx, rbp
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
jmp 0x14030980c
cmp qword [0x140791440], 0
jne 0x1403094fb
movzx eax, byte [0x140744479]
cmp al, 0x7f
je 0x140309491
test dl, dl
js 0x1403091cc
movq xmm0, qword [0x140744490]
paddb xmm0, xmmword [0x1405f8690]
movq qword [0x140744490], xmm0
add byte [0x140744498], 0x82
jmp 0x140309649
mov rbx, rdi
cmp qword [rbp + 0x20], 0x10
jb 0x140308f44
mov rdi, r15
mov rax, qword [rbp + 8]
jmp 0x140308f4b
cmp qword [0x140791450], 0
jne 0x1403097fa
movzx eax, byte [0x1407444c9]
cmp al, 0x32
jne 0x140309639
jmp 0x14030967b
cmp r8, rcx
je 0x14030924b
mov rbx, rdi
mov rdi, r15
mov qword [rsp + 0x48], r9
mov rax, qword [r8]
mov rax, qword [rax]
mov rsi, rcx
mov rcx, rax
mov r13, r8
mov ebp, edx
call fcn.1400956e0
mov rax, qword [rsi]
mov rax, qword [rax]
mov qword [rsp + 0x30], rax
mov edx, 0x9f21c888
call fcn.140308b60
mov r12, rax
add r12d, dword [0x140790664]
mov rcx, r12
call fcn.140308a80
mov rcx, qword [r13]
mov qword [rcx], rax
mov r15, rsi
mov rax, qword [rsi]
mov r9, qword [rax]
mov rsi, r13
mov rax, qword [r13]
mov rax, qword [rax]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x28], rax
mov edx, 0xb8fbd3c1
call fcn.140308b60
mov edx, ebp
xor r13d, r13d
test dl, 0x20
jne 0x14030900c
mov r12, rsi
mov rbp, qword [rsp + 0x2d0]
jmp 0x14030980c
mov rax, qword [r15]
mov rax, qword [rax]
test rax, rax
je 0x140309038
test dl, 0x10
je 0x1403098dc
mov rcx, qword [r9]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x1403091f3
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov edx, 0xec23f394
call fcn.140308b60
xor r12d, r12d
add eax, dword [0x140790664]
setne r12b
jmp 0x140309809
cmp qword [0x140791448], 0
je 0x1403090df
mov rbx, rdi
mov rdi, r15
mov r15, rcx
xor r13d, r13d
mov r12, rbp
test dl, 0x20
jne 0x14030980c
jmp 0x140309931
mov rdi, r15
lea rax, [rbp + 8]
mov qword [rbp + 0x18], 0
mov byte [rax], 0
mov rax, qword [r14]
cmp qword [rax], 0
je 0x14030901c
mov r15, rcx
mov r13d, edx
mov rbp, r9
mov rsi, r8
mov dword [rsp + 0x5c], 0x100
mov dword [rsp + 0x58], 0x100
mov rcx, qword [rax]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x54]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], 0
lea r8, [rsp + 0x160]
lea r9, [rsp + 0x58]
mov edx, 0x7e6b9d47
call fcn.140308b60
test eax, eax
je 0x14030910b
mov eax, r13d
test r13d, 0x400
jne 0x1403091b6
lea rdx, [rsp + 0x160]
mov rcx, qword [rsp + 0x2d0]
call fcn.1400c73a0
mov edx, r13d
mov r12d, 1
mov r8, rsi
mov r9, rbp
jmp 0x140309121
xor r13d, r13d
mov r12, rbp
jmp 0x14030980c
xor r12d, r12d
mov r8, rsi
mov r9, qword [rsp + 0x48]
jmp 0x140309121
test dl, 0x40
mov r15, rdi
mov rdi, rbx
je 0x140309491
jmp 0x1403090d7
xor r12d, r12d
jmp 0x14030980c
mov rsi, rdi
mov rdi, r15
mov r12, rcx
mov r15, r9
mov r13, r8
test dl, 0x40
jne 0x1403090d7
mov ecx, 0xff75ea1b
lea r8, [rcx + 1]
xor r10d, r10d
movabs r11, 0xd79435e50d79435f
lea rbx, [0x1405f8710]
add rbx, rcx
lea rbp, [0x1407444f0]
nop word [rax + rax]
mov rax, r8
mul r11
mov r9, rdx
mov rax, rcx
mul r11
shr rdx, 4
imul rax, rdx, 0xffffffffffffffed
add rax, rbx
movzx eax, byte [r10 + rax]
xor al, 0x31
add byte [r10 + rbp], al
cmp r10, 0x12
je 0x140309137
shr r9, 4
imul rax, r9, 0xffffffffffffffed
add rax, rbx
inc rax
movzx eax, byte [rax + r10]
xor al, 0x31
add byte [r10 + rbp + 1], al
add r10, 2
add r8, 2
add rcx, 2
jmp 0x140309080
xor r12d, r12d
jmp 0x140309809
movzx eax, byte [0x140744499]
cmp al, 0x10
je 0x14030961e
mov r10b, 0x44
mov al, 0xc4
lock cmpxchg byte [0x140744499], r10b
je 0x140308dc7
cmp al, 0x10
jne 0x1403090f1
jmp 0x14030961e
mov edx, 0xad203d9
call fcn.140308b60
xor r12d, r12d
mov r8, rsi
mov r9, rbp
mov edx, r13d
mov rcx, r15
mov rbp, qword [rsp + 0x2d0]
mov r15, rdi
mov rdi, rbx
jmp 0x1403095c1
mov al, 0x98
xchg byte [0x140744503], al
mov rbp, qword [rsp + 0x2d0]
jmp 0x140309563
movabs rax, 0x5b9a06a963461298
xor qword [0x140744430], rax
xor byte [0x140744438], 0xce
mov al, 0xc1
xchg byte [0x140744439], al
movzx eax, byte [0x140744448]
cmp al, 0xec
je 0x140309191
mov r10b, 0x1e
nop word [rax + rax]
mov al, 0x25
lock cmpxchg byte [0x140744448], r10b
je 0x140309199
cmp al, 0xec
jne 0x140309180
mov r12, r9
jmp 0x1403095d3
movq xmm0, qword [0x140744440]
paddb xmm0, xmmword [0x1405f8670]
movq qword [0x140744440], xmm0
jmp 0x1403098e7
xor r13d, r13d
mov r8, rsi
mov r9, rbp
mov rbp, qword [rsp + 0x2d0]
jmp 0x140309931
mov cl, 0x1e
mov al, 0x29
lock cmpxchg byte [0x140744479], cl
je 0x140309455
cmp al, 0x7f
jne 0x1403091ce
test dl, 0x10
jne 0x140309491
xor r13d, r13d
jmp 0x14030980c
mov r12d, 1
jmp 0x140309809
movq xmm0, qword [0x140744450]
paddb xmm0, xmmword [0x1405f86a0]
movq qword [0x140744450], xmm0
add byte [0x140744458], 0xdb
mov al, 0xb2
xchg byte [0x140744459], al
movzx eax, byte [0x14074446d]
cmp al, 0xa4
je 0x140309302
mov cl, 0x71
mov al, 0xd7
lock cmpxchg byte [0x14074446d], cl
je 0x14030924b
cmp al, 0xa4
jne 0x140309236
jmp 0x140309302
test dl, 0x10
jne 0x14030925b
xor r13d, r13d
mov r12, r8
jmp 0x14030980c
mov eax, 1
mov ecx, 0x53adea43
mov edx, 0xac5215c9
mov r8d, 0x53adea44
mov r9d, 0xac5215c8
lea r10, [0x140744460]
lea r11, [0x1405f86d0]
nop word cs:[rax + rax]
mov esi, r9d
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea edi, [rsi + rsi*2]
lea esi, [rsi + rdi*4]
add esi, r8d
movzx ebx, byte [rax + r10 - 1]
xor bl, byte [rsi + r11]
xor bl, 0x25
mov byte [rax + r10 - 1], bl
cmp rax, 0xd
je 0x1403092fa
mov esi, edx
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea edi, [rsi + rsi*2]
lea esi, [rsi + rdi*4]
add esi, ecx
movzx ebx, byte [rax + r10]
mov esi, esi
xor bl, byte [rsi + r11]
xor bl, 0x25
mov byte [rax + r10], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x140309290
mov al, 0xa4
xchg byte [0x14074446d], al
lea rax, [0x140744450]
mov qword [rsp + 0x38], rax
lea rax, [0x140744460]
mov qword [rsp + 0x28], rax
mov edx, 0x582e7945
call fcn.140308b60
mov qword [0x140791438], rax
call qword [0x140791438]
jmp 0x140309806
xor byte [0x140744410], 0xf5
mov dword [0x140744508], 0x4452177e
xor byte [0x140744411], 0xd2
mov dword [0x140744508], 0x4452177e
xor byte [0x140744412], 0x65
mov dword [0x140744508], 0x4452177e
xor byte [0x140744413], 0x99
mov dword [0x140744508], 0x4452177e
xor byte [0x140744414], 0xc9
mov dword [0x140744508], 0x4452177e
xor byte [0x140744415], 0x28
mov dword [0x140744508], 0x4452177e
xor byte [0x140744416], 0x2d
mov dword [0x140744508], 0x4452177e
xor byte [0x140744417], 0x28
mov dword [0x140744508], 0x4452177e
xor byte [0x140744418], 0x49
mov dword [0x140744508], 0x4452177e
mov al, 0x2d
xchg byte [0x140744419], al
movzx eax, byte [0x14074442d]
cmp al, 0xac
je 0x1403096b4
mov cl, 0xf0
mov al, 0x45
lock cmpxchg byte [0x14074442d], cl
je 0x1403093fd
cmp al, 0xac
jne 0x1403093e8
jmp 0x1403096b4
mov eax, 0x81cbce3d
mov ecx, 0x7e3431cf
xor r9d, r9d
lea r10, [0x140744420]
lea r11, [0x1405f86c0]
mov esi, ecx
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea ebx, [rsi + rsi*2]
lea esi, [rsi + rbx*4]
add esi, eax
mov dword [0x140744504], 0x28a5a98f
movzx ebx, byte [rsi + r11]
xor bl, 0x75
add byte [r9 + r10], bl
inc r9
dec eax
inc ecx
cmp r9, 0xd
jne 0x140309418
jmp 0x1403096a4
movdqa xmm0, xmmword [0x140744470]
paddb xmm0, xmmword [0x1405f8680]
movd dword [0x140744470], xmm0
add byte [0x140744474], 0x83
add byte [0x140744476], 0xae
add byte [0x140744477], 0xb3
add byte [0x140744478], 2
mov al, 0x7f
xchg byte [0x140744479], al
movzx eax, byte [0x140744489]
cmp al, 0x36
je 0x1403094d2
mov cl, 0xb6
nop
mov al, 0x52
lock cmpxchg byte [0x140744489], cl
je 0x1403094b2
cmp al, 0x36
jne 0x1403094a0
jmp 0x1403094d2
movabs rax, 0x3e7cb3f14587a105
xor qword [0x140744480], rax
xor byte [0x140744488], 0xb7
mov al, 0x36
xchg byte [0x140744489], al
lea rax, [0x140744470]
mov qword [rsp + 0x38], rax
lea rax, [0x140744480]
mov qword [rsp + 0x28], rax
mov edx, 0x582e7945
call fcn.140308b60
mov qword [0x140791440], rax
mov rcx, rdi
mov rdx, r15
call qword [0x140791440]
jmp 0x140309806
movq xmm0, qword [0x1407444e0]
paddb xmm0, xmmword [0x1405f86b0]
movq qword [0x1407444e0], xmm0
add byte [0x1407444e8], 0x7e
mov al, 0xd3
xchg byte [0x1407444e9], al
mov rsi, rdi
mov rdi, r15
mov r12, rcx
mov r15, r9
mov r13, r8
movzx eax, byte [0x140744503]
cmp al, 0x98
je 0x140309563
mov cl, 0x77
mov al, 0xf6
lock cmpxchg byte [0x140744503], cl
je 0x140309050
cmp al, 0x98
jne 0x14030954f
lea rax, [0x1407444e0]
mov qword [rsp + 0x38], rax
lea rax, [0x1407444f0]
mov qword [rsp + 0x28], rax
mov edx, 0x582e7945
call fcn.140308b60
mov qword [0x140791458], rax
mov r8, r13
mov r9, r15
mov rcx, r12
mov r15, rdi
mov rdi, rsi
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r9
mov rcx, r14
mov rdx, r8
mov r8, rbp
mov r9, r15
call qword [0x140791458]
jmp 0x140309806
test dl, 0x10
jne 0x140309639
jmp 0x140309809
mov al, 0xec
xchg byte [0x140744448], al
lea rax, [0x140744430]
mov qword [rsp + 0x38], rax
lea rax, [0x140744440]
mov qword [rsp + 0x28], rax
mov edx, 0x582e7945
call fcn.140308b60
mov qword [0x140791430], rax
mov r9, r12
mov ecx, r14d
mov rdx, rdi
mov r8, r9
call qword [0x140791430]
mov r12d, eax
jmp 0x14030980c
mov al, 0x10
xchg byte [0x140744499], al
movzx eax, byte [0x1407444b2]
cmp al, 0xbb
je 0x140309705
test edx, 0x100
jne 0x1403096eb
mov r10b, 0xd0
mov al, 0x84
lock cmpxchg byte [0x1407444c9], r10b
jne 0x140309670
test dl, 0x40
jne 0x140309616
movabs rax, 0x95f59ee4e9a08211
xor qword [0x1407444c0], rax
xor byte [0x1407444c8], 0x91
mov al, 0x32
xchg byte [0x1407444c9], al
jmp 0x14030967b
xor r12d, r12d
cmp al, 0x32
jne 0x1403095c1
movzx eax, byte [0x1407444dd]
cmp al, 0x21
je 0x1403097cb
mov cl, 0x8b
nop dword [rax]
mov al, 0x50
lock cmpxchg byte [0x1407444dd], cl
je 0x14030971c
cmp al, 0x21
jne 0x140309690
test dl, dl
jns 0x1403097cb
mov al, 0xac
xchg byte [0x14074442d], al
lea rax, [0x140744410]
mov qword [rsp + 0x38], rax
lea rax, [0x140744420]
mov qword [rsp + 0x28], rax
mov edx, 0x582e7945
call fcn.140308b60
mov qword [0x140791428], rax
mov rcx, r15
call qword [0x140791428]
jmp 0x140309806
mov r10b, 0x10
nop
mov al, 0xc8
lock cmpxchg byte [0x1407444b2], r10b
je 0x14030983a
cmp al, 0xbb
jne 0x1403096f0
mov rbx, rdi
mov rdi, r15
mov r15, rcx
mov r12, r9
mov rsi, r8
xor r13d, r13d
jmp 0x140309902
mov r15, rbp
mov eax, 1
mov ecx, 0xdb1df83a
mov edx, 0x24e207d2
mov r9d, 0xdb1df83b
mov r10d, 0x24e207d1
lea r11, [0x1407444d0]
lea rbx, [0x1405f8700]
nop dword [rax + rax]
mov esi, r10d
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea r14d, [rsi + rsi*2]
lea esi, [rsi + r14*4]
add esi, r9d
movzx ebp, byte [rax + r11 - 1]
xor bpl, byte [rsi + rbx]
xor bpl, 0xe6
mov byte [rax + r11 - 1], bpl
cmp rax, 0xd
je 0x1403097c0
mov esi, edx
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea r14d, [rsi + rsi*2]
lea esi, [rsi + r14*4]
add esi, ecx
movzx ebp, byte [rax + r11]
mov esi, esi
xor bpl, byte [rsi + rbx]
xor bpl, 0xe6
mov byte [rax + r11], bpl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r9d, 0xfffffffe
add r10d, 2
jmp 0x140309750
mov al, 0x21
xchg byte [0x1407444dd], al
mov rbp, r15
lea rax, [0x1407444c0]
mov qword [rsp + 0x38], rax
lea rax, [0x1407444d0]
mov qword [rsp + 0x28], rax
mov edx, 0x582e7945
mov rsi, r8
call fcn.140308b60
mov r8, rsi
mov qword [0x140791450], rax
mov rcx, rdi
mov rdx, r8
call qword [0x140791450]
mov r12d, eax
xor r13d, r13d
test r13b, r13b
cmovne r12, rbp
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.14059b6c0
mov rax, r12
add rsp, 0x268
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, r15
mov eax, 0x28dd731
mov r10d, 0xfd7228e0
mov r11d, 1
mov r15d, 0x28dd732
mov ebp, 0xfd7228de
lea r12, [0x1407444a0]
lea r13, [0x1405f86e0]
nop word [rax + rax]
mov esi, r10d
imul rsi, rsi, 0x38e38e39
shr rsi, 0x22
lea esi, [rsi + rsi*8]
lea esi, [rax + rsi*2]
mov ebx, ebp
imul rbx, rbx, 0x38e38e39
shr rbx, 0x22
lea ebx, [rbx + rbx*8]
lea ebx, [r15 + rbx*2]
movzx ebx, byte [rbx + r13]
xor bl, 0x9e
add byte [r11 + r12 - 1], bl
movzx ebx, byte [rsi + r13]
xor bl, 0x9e
add byte [r11 + r12], bl
add eax, 0xfffffffe
add r10d, 2
add r11, 2
add r15d, 0xfffffffe
add ebp, 2
cmp r11, 0x13
jne 0x140309870
mov rbp, qword [rsp + 0x2d0]
mov r15, rdi
mov rdi, qword [rsp + 0x2d8]
mov al, 0xbb
xchg byte [0x1407444b2], al
xor r13d, r13d
mov r12, r9
test edx, 0x200
jne 0x1403095cb
mov rbx, rdi
mov rdi, r15
mov r15, rcx
mov rsi, r8
lea rax, [0x140744490]
mov qword [rsp + 0x38], rax
lea rax, [0x1407444a0]
mov qword [rsp + 0x28], rax
mov edx, 0x582e7945
call fcn.140308b60
mov qword [0x140791448], rax
mov r8, rsi
mov r9, r12
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], r14
mov rcx, rdi
mov rdx, r15
mov r9, rbx
call qword [0x140791448]
mov r12d, eax
jmp 0x14030980c