Function at 0x14022c5e0
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 rdi, rcx
mov eax, 0xca2ee4dd
nop dword [rax + rax]
mov ecx, dword [0x1415970bc]
add ecx, dword [str._c_r_]
or ecx, 0x914f809e
mov r8d, ecx
xor r8d, 0x2780faef
and ecx, 0x587f0510
add ecx, ecx
sub ecx, r8d
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x7a4588c2
ja 0x14022c600
mov dword [rsp + 0x2c], edx
test edx, edx
je 0x14022cb99
nop word cs:[rax + rax]
mov eax, dword [0x1415970c0]
xor eax, dword [0x1415970c4]
add eax, 0x4d991ff8
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xf00d301
and ecx, 0xf0ff2cfe
imul ecx, edx
mov edx, eax
and edx, 0xf0ff2cfe
or eax, 0xf0ff2cfe
imul eax, edx
add eax, ecx
cmp eax, 0x6f697d3a
je 0x14022c650
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x30], rax
mov eax, dword [0x1415970c8]
xor edx, edx
div dword [0x1415970cc]
nop word cs:[rax + rax]
mov eax, dword [0x1415970d0]
mov ecx, dword [0x1415970d4]
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
add eax, 0xb5e3120c
and eax, 0xdec109ca
imul rax, rax, 0x1537a035
shr rax, 0x3c
cmp eax, 0x44dad1b3
ja 0x14022c6b0
cmp qword [rsp + 0x30], 0
je 0x14022cb99
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14022c710
mov eax, 0xe71197d3
xor r13d, r13d
nop dword [rax]
mov ecx, dword [0x1415970d8]
imul ecx, dword [0x1415970dc]
imul rcx, rax
shr rcx, 0x3e
mov edx, ecx
not edx
and edx, 0x9b719be9
mov r8d, ecx
and r8d, 0xfffffffe
imul r8d, edx
mov edx, ecx
and edx, 1
or ecx, 0x9b719be9
imul ecx, edx
add ecx, r8d
add ecx, 0xcb6a1f5c
cmp ecx, 0x3213f7d1
jb 0x14022c720
xor ebp, ebp
mov r12, qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov r15d, 0xf8b036df
jmp 0x14022c78b
cmp r13, qword [rsp + 0x30]
je 0x14022cb99
mov rcx, r13
nop
mov eax, dword [0x1415970e0]
sub eax, dword [0x1415970e4]
mov edx, eax
xor edx, 0x90d3568b
and edx, eax
xor edx, 0x49731cb9
add edx, 0x9692835
cmp edx, 0x396e1b65
ja 0x14022c790
cmp qword [rdi + 0x10], rcx
jbe 0x14022cbaa
mov edx, ecx
and edx, 1
mov r8, rcx
xor r8, 1
mov r9, qword [rdi + 8]
shl rcx, 7
xor eax, eax
mov r10b, 1
lock cmpxchg byte [r9 + rcx + 4], r10b
lea r13, [r8 + rdx*2]
lea r14, [r9 + rcx]
lea rbx, [r9 + rcx + 4]
sete al
nop word cs:[rax + rax]
mov ecx, dword [0x1415970e8]
mov edx, dword [0x1415970ec]
xor edx, ecx
not edx
and edx, ecx
or edx, 0xfffef5cb
imul rcx, rdx, 0x214cda8f
shr rcx, 0x3b
cmp ecx, 0xcb838174
je 0x14022c800
test al, al
jne 0x14022c8fe
mov eax, dword [0x1415970f0]
sub eax, dword [0x1415970f4]
imul rax, rax, 0x43a36d
shr rax, 0x36
imul eax, eax, 0xa6cbb6cd
cmp eax, 0xea3df8ce
ja 0x14022cb8c
mov esi, dword [0x1415970f8]
sub esi, dword [0x1415970fc]
mov eax, esi
or eax, 0xb77a72bb
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x4de0fa99
and ecx, 0xb21f0566
imul ecx, edx
and eax, 0xb21f0566
or esi, 0xb77f77ff
imul esi, eax
add esi, ecx
mov eax, esi
and eax, 0xf986482a
or esi, 0xf986482b
add esi, eax
mov rcx, rbx
call fcn.1402393c0
cmp esi, 0x59be97aa
jb 0x14022c85b
nop word cs:[rax + rax]
mov eax, dword [0x141597100]
imul eax, dword [0x141597104]
mov ecx, eax
xor ecx, 0x86bf5c8
and eax, 0x77940a37
add eax, eax
sub eax, ecx
add eax, 0x38fe1b53
imul rcx, rax, 0x5ef2231
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1d
cmp eax, 0x7f6eb249
ja 0x14022c8c0
mov eax, dword [0x141597108]
xor eax, dword [0x14159710c]
mov ecx, 0x972cbdc3
imul rax, rcx
shr rax, 0x3d
add eax, 0x24f9dcde
mov ecx, eax
not ecx
and ecx, 0x5204233c
and eax, 0x4885c03
sub eax, ecx
cmp eax, 0x8d4c169b
je 0x14022c8fe
movzx esi, byte [r14 + 5]
mov eax, dword [0x141597110]
xor edx, edx
div dword [0x141597114]
nop word [rax + rax]
mov eax, dword [0x141597118]
mov ecx, dword [0x14159711c]
not eax
not ecx
or ecx, eax
mov eax, ecx
not eax
mov edx, eax
and edx, 0x1e5f191a
and ecx, 0x1a0e6e5
imul ecx, edx
mov edx, eax
and edx, 0x1a0e6e5
or eax, 0x1a0e6e5
imul eax, edx
add eax, ecx
or eax, 0xe77f7c5a
cmp eax, 0xc0bed80f
je 0x14022c950
test sil, sil
je 0x14022ca2a
mov byte [r14 + 5], 0
lock inc dword [r14]
mov rcx, r14
call r12
lock dec qword [rdi + 0x18]
nop word cs:[rax + rax]
mov eax, dword [0x141597120]
and eax, dword [0x141597124]
mov ecx, eax
xor ecx, 0x42a074d7
xor eax, 0xd0e0828
mov edx, eax
and edx, 0xb1538300
and ecx, 0x4eac7cff
imul ecx, edx
mov edx, eax
and edx, 0x4eac7cff
or eax, 0x4eac7cff
imul eax, edx
add eax, ecx
mov ecx, eax
not ecx
and ecx, 0xdef4b9b1
mov edx, eax
and edx, 0x210b464e
imul edx, ecx
mov ecx, eax
and ecx, 0xdef4b9b1
or eax, 0xdef4b9b1
imul eax, ecx
add eax, edx
cmp eax, 0x91ad5917
ja 0x14022c9c0
xor eax, eax
xchg byte [rbx], al
nop
mov ecx, dword [0x141597128]
xor ecx, dword [0x14159712c]
cmp ecx, 0x1fafaca2
je 0x14022ca30
cmp al, 2
jne 0x14022cab0
mov eax, dword [0x141597130]
mov ecx, dword [0x141597134]
not eax
not ecx
and ecx, eax
not ecx
add ecx, 0x73f7f21e
xor ecx, 0x7f27e8ce
imul rax, rcx, 0x4ec51555
shr rax, 0x3c
cmp eax, 0x8d71f6fa
jbe 0x14022ca80
mov rcx, rbx
call r12
mov rcx, rbx
call r12
test bpl, bpl
jne 0x14022ca80
nop dword [rax + rax]
mov eax, dword [0x141597138]
add eax, dword [0x14159713c]
xor eax, 0x425f006b
imul rax, r15
shr rax, 0x3d
cmp eax, 0xf329e143
je 0x14022ca90
mov eax, dword [0x141597140]
mov ecx, dword [0x141597144]
mov edx, eax
xor edx, ecx
not edx
or eax, ecx
and eax, edx
imul eax, eax, 0x6ea3896f
mov ecx, eax
not ecx
and ecx, 0xcc889ca6
mov edx, eax
and edx, 0x33776359
imul edx, ecx
mov ecx, eax
and ecx, 0xcc889ca6
or eax, 0xcc889ca6
imul eax, ecx
add eax, edx
and eax, 0xab9859d2
cmp eax, 0x8aa8e7c3
ja 0x14022cab0
test sil, sil
je 0x14022c780
mov eax, dword [0x141597148]
xor edx, edx
div dword [0x14159714c]
mov eax, dword [0x141597150]
mov ecx, dword [0x141597154]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
cmp ecx, 0x17d36845
je 0x14022cb16
nop word cs:[rax + rax]
mov eax, dword [0x141597158]
add eax, dword [0x14159715c]
and eax, 0x7ec2ff89
mov ecx, eax
xor ecx, 0xfce3be21
or eax, 0x2004188
and eax, ecx
mov ecx, eax
and ecx, 0x7a002781
xor eax, 0xfa0427a1
lea eax, [rax + rcx*2]
cmp eax, 0xe49a1f82
je 0x14022cb40
cmp dword [rsp + 0x2c], 1
mov dword [rsp + 0x2c], 1
jne 0x14022c780
jmp 0x14022cb99
mov rcx, rbx
call fcn.1402393c0
jmp 0x14022c85b
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2