Function at 0x14015f4d0
Capabilities:
Encode data using base64
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, edx
mov rdi, rcx
nop word cs:[rax + rax]
mov eax, dword [0x140219b58]
sub eax, dword [0x140219b5c]
mov ecx, eax
and ecx, 0x74acb06b
add ecx, ecx
sub eax, ecx
imul eax, eax, 0x4c48bc6c
add eax, 0x6c810124
mov ecx, eax
and ecx, 0xef499580
or eax, 0xef499582
add eax, ecx
cmp eax, 0x91f00d37
jb 0x14015f4f0
test esi, esi
je 0x14015fb30
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14015fb30
nop word cs:[rax + rax]
mov eax, dword [0x140219b60]
mov ecx, dword [0x140219b64]
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov eax, ecx
and eax, 0x8054663
xor ecx, 0x8054663
lea eax, [rcx + rax*2]
mov ecx, eax
and ecx, 0x4714dc1a
or eax, 0x4714dc1a
add eax, ecx
not eax
and eax, 0xbfc27196
cmp eax, 0x3ff90da5
je 0x14015f550
xor r12d, r12d
mov bpl, 1
mov r13, qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov r15d, 0x98edc38d
xor r14d, r14d
nop dword [rax + rax]
cmp qword [rdi + 0x10], r14
jbe 0x14015fb69
lea rax, [r14 + 1]
mov qword [rsp + 0x30], rax
nop word cs:[rax + rax]
mov eax, dword [0x140219b68]
xor edx, edx
div dword [0x140219b6c]
mov ecx, eax
xor ecx, 0x88090982
xor eax, 0x70000001
and eax, 0x7586b451
and ecx, 0x8a794bae
or ecx, eax
xor ecx, 0xa76e4448
imul rax, rcx, 0x2f1cbb29
shr rax, 0x3b
cmp eax, 0x1aca0452
ja 0x14015f5d0
shl r14, 7
add r14, qword [rdi + 8]
mov eax, dword [0x140219b70]
xor edx, edx
div dword [0x140219b74]
or eax, 0x960d16fb
add eax, 0x1f86bf7f
or eax, 0x2124e491
cmp eax, 0x954f164e
jae 0x14015f650
xor eax, eax
lock cmpxchg byte [r14 + 4], bpl
nop word cs:[rax + rax]
mov eax, dword [0x140219b78]
mov ecx, dword [0x140219b7c]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
mov ecx, eax
xor ecx, 0x7878a49
add ecx, eax
and eax, 0x187875b6
sub ecx, eax
add ecx, 0xdf83550c
or ecx, 0xe26e8416
xor eax, eax
lock cmpxchg byte [r14 + 4], bpl
sete al
cmp ecx, 0x946b5d59
jb 0x14015f650
lea rbx, [r14 + 4]
test al, al
jne 0x14015f766
mov eax, dword [0x140219b80]
mov ecx, dword [0x140219b84]
mov edx, eax
not edx
mov r8d, ecx
not r8d
mov r9d, edx
and r9d, 0xdebe4950
and eax, 0x2141b6af
or eax, r9d
or edx, r8d
and r8d, 0xdebe4950
and ecx, 0x2141b6af
or ecx, r8d
xor ecx, eax
not edx
or edx, ecx
imul eax, edx, 0x8949ec6
add eax, 0xccb8c94
imul rax, rax, 0x3b4fdd21
shr rax, 0x3d
cmp eax, 0xdc3ded5e
ja 0x14015fb14
mov rcx, rbx
call fcn.14016bdf0
test r12b, r12b
jne 0x14015f719
nop word cs:[rax + rax]
mov eax, dword [0x140219b88]
mov ecx, dword [0x140219b8c]
mov edx, ecx
and edx, eax
add eax, ecx
sub eax, edx
mov ecx, eax
not ecx
or ecx, 0xf509b4a2
add eax, ecx
inc eax
xor eax, 0x27101fd0
imul rax, r15
shr rax, 0x3f
cmp eax, 0x8dda2c88
je 0x14015f730
movzx eax, byte [r14 + 5]
mov byte [rsp + 0x23], al
test al, al
je 0x14015f8f1
mov dword [rsp + 0x24], esi
mov byte [r14 + 5], 0
lock inc dword [r14]
mov eax, dword [0x140219ba0]
xor edx, edx
div dword [0x140219ba4]
mov ecx, eax
not ecx
mov edx, eax
or edx, 0xd47b4e62
mov r8d, edx
and r8d, 0xc84821a2
and ecx, 0x2384901d
imul ecx, r8d
and edx, 0x37b7de5d
or eax, 0xf7ffde7f
imul eax, edx
add eax, ecx
xor eax, 0x3d7dbb5a
cmp eax, 0x97b01500
jbe 0x14015f7e0
mov rcx, r14
call r13
nop word cs:[rax + rax]
mov eax, dword [0x140219ba8]
mov ecx, dword [0x140219bac]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
mov esi, eax
and esi, 0x80e0218
mov ecx, esi
not ecx
and ecx, 0x58784d03
mov edx, eax
and edx, 0x60218
imul edx, ecx
and eax, 0x8080000
or esi, 0x58784d03
imul esi, eax
add esi, edx
mov rcx, r14
call r13
cmp esi, 0xf98abb92
ja 0x14015f7e0
mov eax, dword [0x140219bb0]
or eax, dword [0x140219bb4]
add eax, 0xb33d9c4c
mov ecx, eax
not ecx
and ecx, 0xe6c4746c
mov edx, eax
and edx, 0x193b8b93
imul edx, ecx
mov ecx, eax
and ecx, 0xe6c4746c
or eax, 0xe6c4746c
imul eax, ecx
add eax, edx
cmp eax, 0x94b892fb
jne 0x14015f88b
lock dec qword [rdi + 0x18]
mov esi, dword [rsp + 0x24]
nop
mov eax, dword [0x140219bb8]
mov ecx, dword [0x140219bbc]
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov eax, ecx
and eax, 0x1d6d6f49
add eax, eax
neg eax
add eax, ecx
add eax, 0x9d6d6f49
mov ecx, eax
xor ecx, 0xac7b2214
xor eax, 0x5304d48a
and eax, 0xdf1df49a
mov edx, ecx
and edx, 0x20e20b65
or edx, eax
xor edx, 0x2282520a
and ecx, 0xfd9fa690
or ecx, edx
lock dec qword [rdi + 0x18]
cmp ecx, 0x44ad53b7
jb 0x14015f890
mov eax, dword [0x140219bc0]
mov ecx, dword [0x140219bc4]
not eax
not ecx
and ecx, eax
not ecx
lea eax, [rcx - 0x2b55c352]
mov edx, eax
and edx, 0x630efd7b
xor eax, 0x9cf10284
add eax, ecx
add eax, 0xd4aa3cae
sub eax, edx
mov ecx, 0xb9464701
imul rax, rcx
shr rax, 0x3f
cmp eax, 0x97c919c8
jbe 0x14015f940
xor eax, eax
xchg byte [rbx], al
nop dword [rax]
mov eax, dword [0x140219bc8]
imul eax, dword [0x140219bcc]
imul eax, eax, 0x69ea360d
mov ecx, eax
not ecx
and ecx, 0x2253eaa2
mov edx, eax
and edx, 0xddac155d
imul edx, ecx
mov ecx, eax
and ecx, 0x2253eaa2
or eax, 0x2253eaa2
imul eax, ecx
add eax, edx
mov ecx, eax
not ecx
and ecx, 0xcdd3bf13
mov edx, eax
and edx, 0x322c40ec
imul edx, ecx
mov ecx, eax
and ecx, 0xcdd3bf12
or eax, 0xcdd3bf13
imul eax, ecx
add eax, edx
mov ecx, 0
xchg byte [rbx], cl
cmp eax, 0x9466d45e
je 0x14015f940
mov eax, dword [str.hexu]
sub eax, dword [0x140219bd4]
and eax, 0xb6eaf08a
add eax, 0x6f3b55e4
not eax
mov edx, eax
or edx, 0xb203de1c
or eax, 0xb203de1d
and eax, edx
cmp eax, 0x97fe2b4c
je 0x14015f9af
nop dword [rax]
test r12b, r12b
jne 0x14015f9e0
cmp cl, 2
jne 0x14015fa50
mov rcx, rbx
call r13
mov eax, dword [0x140219bdc]
mov ecx, eax
xor ecx, ecx
not ecx
and ecx, dword [0x140219bd8]
xor ecx, eax
mov eax, ecx
not eax
and eax, 0xfbe4500a
mov edx, ecx
and edx, 0x41baff5
imul edx, eax
mov eax, ecx
and eax, 0xfbe4500a
or ecx, 0xfbe4500a
imul ecx, eax
lea eax, [rcx + rdx]
add eax, 0x659aca75
mov ecx, eax
and ecx, 0x60821c4a
xor eax, 0x60821c4a
lea eax, [rax + rcx*2]
cmp eax, 0x656197d7
ja 0x14015f9f0
nop word [rax + rax]
mov eax, dword [0x140219be0]
add eax, dword [0x140219be4]
imul eax, eax, 0xce4ad03a
add eax, 0x77bf8ae4
mov ecx, eax
xor ecx, 0xcfa396b7
and eax, 0xcfa396b6
or eax, ecx
cmp eax, 0xe35573de
ja 0x14015fa50
cmp byte [rsp + 0x23], 0
je 0x14015fad0
mov eax, dword [0x140219bf8]
xor eax, dword [0x140219bfc]
imul eax, eax, 0x49b26ddd
lea ecx, [rax + 0x64430622]
mov edx, ecx
and edx, 0xa1c7fcae
xor ecx, 0x5e380351
add eax, ecx
add eax, 0x64430622
sub eax, edx
cmp eax, 0x72b55151
je 0x14015fa84
nop word [rax + rax]
test r12b, r12b
jne 0x14015fac0
cmp esi, 1
mov esi, 1
je 0x14015fb30
nop
mov eax, dword [0x140219bf0]
and eax, dword [0x140219bf4]
mov ecx, eax
not ecx
or ecx, 0x18029c3f
or eax, 0xe7fd63c0
and eax, ecx
imul rax, rax, 0x674aa519
shr rax, 0x3d
cmp eax, 0x300278d9
je 0x14015fad0
mov rax, qword [rsp + 0x30]
mov r14, rax
cmp rax, qword [rsp + 0x28]
jne 0x14015f5b0
jmp 0x14015fb30
mov rcx, rbx
call fcn.14016bdf0
jmp 0x14015f719
mov eax, dword [0x140219be8]
add eax, dword [0x140219bec]
xor eax, 0x343e8fba
imul rax, rax, 0x30763a5
shr rax, 0x39
or eax, 0xe53766dc
cmp eax, 0xb51b8610
jb 0x14015fb30
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x140219b90]
xor edx, edx
div dword [0x140219b94]
add eax, 0x8c6a201c
or eax, 0x6dc4374e
mov ecx, 0xb9106225
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x2afe4923
jne 0x14015fba0
ud2
mov eax, dword [0x140219b98]
or eax, dword [0x140219b9c]
mov ecx, eax
not ecx
and ecx, 0x516b9715
mov edx, eax
and edx, 0xae9468ea
imul edx, ecx
mov ecx, eax
and ecx, 0x516b9715
or eax, 0x516b9715
imul eax, ecx
add eax, edx
mov ecx, eax
xor ecx, 0x42c373c6
xor eax, 0xbd3c8c39
mov edx, eax
and edx, 0x83826f57
and ecx, 0x7c7d90a8
imul ecx, edx
mov edx, eax
and edx, 0x7c7d90a8
or eax, 0x7c7d90a8
imul eax, edx
add eax, ecx
ud2