Function at 0x140031ac0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov r14, rdx
mov rbx, rcx
xor r12d, r12d
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0xb0], r12d
mov edi, r12d
mov ecx, 4
mov rax, qword gs:[0x58]
mov r8, qword [rax]
lea rbp, [0x1401a9198]
mov eax, dword [rcx + r8]
cmp dword [0x1401a91b8], eax
jle 0x140031b6f
lea rcx, [0x1401a91b8]
call fcn.14003d9dc
cmp dword [0x1401a91b8], 0xffffffff
jne 0x140031b6f
mov qword [0x1401a9198], r12
movdqa xmm0, xmmword [0x14004a530]
movdqu xmmword [0x1401a91a8], xmm0
lea r8d, [r12 + 0x40]
lea rdx, [0x140049ac0]
mov rcx, rbp
call fcn.1400305a0
lea rcx, [0x14003f6e0]
call fcn.14003dd24
nop
lea rcx, [0x1401a91b8]
call fcn.14003d97c
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], r12
mov r15, qword [0x1401a91a8]
cmp qword [0x1401a91b0], 0x10
cmovae rbp, qword [0x1401a9198]
cmp r15, 0x10
jae 0x140031bb1
movups xmm0, xmmword [rbp]
movups xmmword [rsp + 0x38], xmm0
mov r13d, 0xf
mov rsi, qword [rsp + 0x38]
jmp 0x140031c28
mov r13, r15
or r13, 0xf
movabs rax, 0x7fffffffffffffff
cmp r13, rax
cmova r13, rax
lea rcx, [r13 + 1]
cmp rcx, 0x1000
jb 0x140031c02
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140031fc1
mov rcx, rax
call fcn.14003de84
test rax, rax
je 0x140031f91
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140031c14
test rcx, rcx
je 0x140031c11
call fcn.14003de84
mov rsi, rax
jmp 0x140031c14
mov rsi, r12
mov qword [rsp + 0x38], rsi
lea r8, [r15 + 1]
mov rdx, rbp
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r15
mov qword [rbx], r12
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov dword [rsp + 0x30], 3
mov rcx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140031c5e
mov rcx, qword [r14]
mov rdx, rcx
jmp 0x140031c61
mov rdx, r14
mov r12, rcx
mov rax, qword [r14 + 0x10]
add rax, rdx
mov qword [rsp + 0xb8], rax
cmp rcx, rax
je 0x140031f66
mov ebp, dword [rsp + 0xb0]
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [r12]
mov eax, 0x55555556
imul ebp
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub eax, ebp
lea r14d, [rax*8 + 0x10]
mov ecx, r14d
shl r8d, cl
add edi, r8d
cmp r14d, 0x10
jne 0x140031d1f
mov ecx, edi
shr rcx, 0x12
and ecx, 0x3f
cmp r15, rcx
jbe 0x140031fbb
lea rax, [rsp + 0x38]
cmp r13, 0x10
cmovae rax, rsi
movzx r9d, byte [rax + rcx]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 0x10]
cmp rcx, rdx
jae 0x140031d12
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x140031d04
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140031df6
mov rcx, rbx
call fcn.140031240
jmp 0x140031df6
cmp r14d, 8
jne 0x140031d2d
mov ecx, edi
shr rcx, 0xc
jmp 0x140031cc5
test r14d, r14d
jne 0x140031df6
cmp ebp, 3
je 0x140031df6
mov rcx, rdi
shr rcx, 6
and ecx, 0x3f
cmp r15, rcx
jbe 0x140031fbb
lea rax, [rsp + 0x38]
cmp r13, 0x10
setae bpl
cmovae rax, rsi
movzx r9d, byte [rax + rcx]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x140031d94
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x140031d89
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140031d9c
mov rcx, rbx
call fcn.140031240
and edi, 0x3f
cmp r15, rdi
jbe 0x140031fbb
lea rax, [rsp + 0x38]
test bpl, bpl
cmovne rax, rsi
movzx r9d, byte [rax + rdi]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x140031de5
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x140031dda
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140031ded
mov rcx, rbx
call fcn.140031240
xor edi, edi
mov ebp, dword [rsp + 0xb0]
inc ebp
mov dword [rsp + 0xb0], ebp
inc r12
cmp r12, qword [rsp + 0xb8]
jne 0x140031c90
cmp r14d, 0x10
jne 0x140031ecf
mov ecx, edi
shr rcx, 0xc
and ecx, 0x3f
cmp r15, rcx
jbe 0x140031fbb
lea rax, [rsp + 0x38]
cmp r13, 0x10
cmovae rax, rsi
movzx r9d, byte [rax + rcx]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x140031e6a
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x140031e5f
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140031e72
mov rcx, rbx
call fcn.140031240
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x140031ead
lea rax, [rcx + 2]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x140031e9a
mov rax, qword [rbx]
mov edx, 0x3d3d
mov word [rax + rcx], dx
mov byte [rax + rcx + 2], 0
jmp 0x140031f66
mov qword [rsp + 0x20], 2
lea r9, [0x140049b04]
mov edx, 2
mov rcx, rbx
call fcn.140031540
jmp 0x140031f66
cmp r14d, 8
jne 0x140031f66
mov ecx, edi
shr rcx, 6
and ecx, 0x3f
cmp r15, rcx
jbe 0x140031fbb
lea rax, [rsp + 0x38]
cmp r13, 0x10
cmovae rax, rsi
movzx r9d, byte [rax + rcx]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x140031f29
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x140031f1e
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140031f31
mov rcx, rbx
call fcn.140031240
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x140031f5a
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x140031f52
mov rax, qword [rbx]
mov word [rax + rcx], 0x3d
jmp 0x140031f66
mov r9b, 0x3d
mov rcx, rbx
call fcn.140031240
nop
cmp r13, 0x10
jb 0x140031fa0
lea rdx, [r13 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140031f98
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140031f98
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.14003de0c
mov rax, rbx
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140030710
nop
call fcn.14002cdc0
int3