Function at 0x140037e50
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x608
mov qword [rsp + 0x58], r8
mov r14, qword [rdx]
test r14, r14
je 0x14003887a
mov r15, rdx
mov r12, qword [rdx + 8]
test r12, r12
je 0x14003887a
mov rbx, qword [r15 + 0x10]
test rbx, rbx
je 0x14003887a
mov r13, r14
add r13, rbx
jb 0x14003887a
mov qword [rsp + 0x68], rcx
mov rdi, r14
sub rdi, r12
jb 0x14003887a
mov rax, r13
shr rax, 0x3d
jne 0x14003887a
movzx esi, word [r15 + 0x18]
mov rcx, r13
mov edx, esi
call fcn.140037a10
mov ecx, esi
sub cx, dx
js 0x14003887a
mov r9d, edx
mov qword [rsp + 0xa0], r13
and ecx, 0x3f
mov r8, rdi
shl r8, cl
mov rdx, r8
shr rdx, cl
cmp rdx, rdi
jne 0x14003887a
mov r10, r14
shl r10, cl
mov rdx, r10
shr rdx, cl
cmp rdx, r14
jne 0x14003887a
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x88], r15
mov ecx, r9d
not ecx
add ecx, 0xffffffa1
movsx ecx, cx
mov edx, ecx
not edx
and edx, 0x50
mov r8d, ecx
and r8d, 0xffffffaf
imul r8d, edx
mov edx, ecx
and edx, 0x50
or ecx, 0x50
imul ecx, edx
add ecx, r8d
add ecx, 0x153b0
movsxd rcx, ecx
imul rcx, rcx, 0x7b4dc993
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x2a
add ecx, edx
cmp ecx, 0x51
jae 0x14003887a
movzx edx, si
mov qword [rsp + 0x80], rdx
movsx rdx, dx
mov qword [rsp + 0x70], rdx
mov ecx, ecx
shl rcx, 4
lea rdx, [0x14007cfb0]
mov rdi, qword [rcx + rdx]
movzx r15d, word [rcx + rdx + 8]
movzx ecx, word [rcx + rdx + 0xa]
mov qword [rsp + 0x50], rcx
mov rcx, rax
mov edx, r9d
mov r8, rdi
mov r13d, r9d
mov r9d, r15d
call fcn.140037acc
mov rsi, rax
mov ebp, edx
mov rcx, qword [rsp + 0x48]
mov edx, r13d
mov r8, rdi
mov r9d, r15d
call fcn.140037acc
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x60]
mov edx, r13d
mov r8, rdi
mov r9d, r15d
call fcn.140037acc
mov qword [rsp + 0x60], rax
lea rdi, [rsi + 1]
neg ebp
and ebp, 0x3f
mov qword [rsp + 0x78], rdi
mov ecx, ebp
shr rdi, cl
mov eax, 1
mov qword [rsp + 0x48], rbp
shl rax, cl
mov r13d, 1
lea rcx, [rax - 1]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x90], rax
mov rbp, rax
neg rbp
mov r15, 0xfffffffffffffffe
sub r15, rsi
or r15, rbp
not r15
mov ecx, edi
call fcn.140037bed
mov r8d, edx
movzx r11d, al
mov rax, qword [rsp + 0x50]
not eax
add eax, r11d
add eax, 2
mov dword [rsp + 0x50], eax
movabs rax, 0x38e6f7b79669fc6d
add rsi, rax
sub rsi, qword [rsp + 0xa8]
sub rsi, rax
add rsi, 2
mov r10, rsi
not r10
or r10, rbp
not r10
neg r11
xor ebp, ebp
mov r9d, 0xcccccccd
mov eax, edi
xor edx, edx
div r8d
cmp r13, 0x12
je 0x14003887a
mov edi, edx
add al, 0x30
mov rcx, qword [rsp + 0x58]
mov byte [rcx + r13 - 1], al
mov eax, edx
mov rcx, qword [rsp + 0x48]
shl rax, cl
mov rcx, rax
and rcx, r15
xor rax, r15
lea rax, [rax + rcx*2]
cmp rax, rsi
jb 0x1400380f7
lea rax, [r11 + r13]
cmp rax, 1
je 0x140038140
inc rbp
mov eax, r8d
imul rax, r9
shr rax, 0x23
inc r13
cmp r8d, 0xa
mov r8d, eax
jae 0x140038093
jmp 0x14003887a
mov edx, r8d
mov rcx, qword [rsp + 0x48]
shl rdx, cl
mov r9, qword [rsp + 0x78]
mov rcx, r9
mov r8, qword [rsp + 0x60]
xor rcx, r8
not r8
and r8, r9
add r8, r8
sub r8, rcx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x40], 1
jmp 0x140038262
mov eax, 1
mov r9, qword [rsp + 0x98]
not r9
cmp r13, 0x10
ja 0x14003887a
mov rcx, r15
and rcx, 0xfffffffffffffff5
mov r8d, r15d
not r8d
and r8d, 0xa
imul r8, rcx
mov ecx, r15d
and ecx, 0xa
or r15, 0xa
imul r15, rcx
mov rdx, r15
add rdx, r8
mov r15, rdx
not r15
or r15, r9
not r15
mov rcx, rax
and rcx, 0xfffffffffffffff5
mov r8d, eax
not r8d
and r8d, 0xa
imul r8, rcx
mov ecx, eax
and ecx, 0xa
or rax, 0xa
imul rax, rcx
add rax, r8
mov ecx, r10d
not ecx
and ecx, 0xa
mov r8, r10
and r8, 0xfffffffffffffff5
imul r8, rcx
mov ecx, r10d
and ecx, 0xa
or r10, 0xa
imul r10, rcx
mov rcx, qword [rsp + 0x48]
shr rdx, cl
add r10, r8
mov ecx, edx
and cl, 0x30
or dl, 0x30
add dl, cl
mov rcx, qword [rsp + 0x58]
mov byte [rcx + r13], dl
inc r13
cmp r15, r10
jae 0x140038150
mov rdx, qword [rsp + 0x78]
mov rcx, rdx
mov r8, qword [rsp + 0x60]
xor rcx, r8
not r8
and r8, rdx
add r8, r8
sub r8, rcx
mov rcx, r8
not rcx
mov rdx, rax
and rdx, rcx
or rcx, rax
not rcx
imul rcx, rdx
mov rdx, rax
and rdx, r8
or r8, rax
imul r8, rdx
add r8, rcx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x30], r8
lea rcx, [rsp + 0xb0]
mov rdx, qword [rsp + 0x58]
mov r8, r13
mov r9d, dword [rsp + 0x50]
call fcn.140037c78
cmp qword [rsp + 0xb0], 0
mov rax, qword [rsp + 0xa0]
je 0x1400382b0
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x68]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rcx], xmm0
jmp 0x140038866
movabs r15, 0x1344135080
dec rax
je 0x1400382c9
bsr rax, rax
xor rax, 0x3f
jmp 0x1400382ce
mov eax, 0x40
mov rcx, qword [rsp + 0x88]
mov bpl, byte [rcx + 0x1a]
mov rdx, qword [rsp + 0x70]
mov rcx, rdx
xor rcx, rax
not rax
and rax, rdx
add rax, rax
sub rax, rcx
mov ecx, eax
not ecx
and ecx, 0x4d104d42
mov rdx, rax
and rdx, 0xffffffffb2efb2bd
imul rdx, rcx
mov ecx, 0x4d104d42
mov r8, rax
and r8, rcx
or rax, rcx
imul rax, r8
add r15, rax
add r15, rdx
shr r15, 0x20
xor edi, edi
lea rcx, [rsp + 0xc8]
mov r8d, 0xa0
xor edx, edx
call fcn.1400706f0
cmp rdi, 0x28
je 0x14003887a
mov dword [rsp + rdi*4 + 0xc8], r14d
shr r14, 0x20
mov eax, edi
and eax, 1
xor rdi, 1
lea rdi, [rdi + rax*2]
test r14, r14
jne 0x14003833c
lea rsi, [rsp + 0x170]
lea rdx, [rsp + 0xc8]
mov r8d, 0xa0
mov rcx, rsi
call fcn.140070050
mov qword [rsi + 0xa0], rdi
xor edi, edi
lea rcx, [rsp + 0xc8]
mov r8d, 0xa0
xor edx, edx
call fcn.1400706f0
cmp rdi, 0x28
je 0x14003887a
mov dword [rsp + rdi*4 + 0xc8], r12d
shr r12, 0x20
inc rdi
test r12, r12
jne 0x1400383a0
lea rsi, [rsp + 0x368]
lea rdx, [rsp + 0xc8]
mov r8d, 0xa0
mov rcx, rsi
call fcn.140070050
mov qword [rsi + 0xa0], rdi
xor edi, edi
lea rcx, [rsp + 0xc8]
mov r8d, 0xa0
xor edx, edx
call fcn.1400706f0
cmp rdi, 0x28
je 0x14003887a
mov dword [rsp + rdi*4 + 0xc8], ebx
shr rbx, 0x20
inc rdi
test rbx, rbx
jne 0x1400383fa
lea rsi, [rsp + 0x218]
lea rdx, [rsp + 0xc8]
mov r8d, 0xa0
mov rcx, rsi
call fcn.140070050
mov qword [rsi + 0xa0], rdi
lea rsi, [rsp + 0x2c4]
mov r8d, 0x9c
mov rcx, rsi
xor edx, edx
call fcn.1400706f0
mov qword [rsi + 0x9c], 1
mov dword [rsi - 4], 1
mov rsi, qword [rsp + 0x80]
test si, si
js 0x1400384a0
lea rcx, [rsp + 0x170]
mov rdx, rsi
call fcn.140033086
lea rcx, [rsp + 0x368]
mov rdx, rsi
call fcn.140033086
lea rcx, [rsp + 0x218]
mov rdx, rsi
jmp 0x1400384b3
mov rax, qword [rsp + 0x70]
neg eax
movsx rdx, ax
lea rcx, [rsp + 0x2c0]
call fcn.140033086
test r15w, r15w
js 0x1400384d4
mov edx, r15d
xor edx, 0xffff0000
and edx, r15d
lea rcx, [rsp + 0x2c0]
jmp 0x140038508
mov eax, r15d
neg eax
movsx rsi, ax
lea rcx, [rsp + 0x170]
mov rdx, rsi
call fcn.1400378e7
lea rcx, [rsp + 0x368]
mov rdx, rsi
call fcn.1400378e7
lea rcx, [rsp + 0x218]
mov rdx, rsi
call fcn.1400378e7
lea rdx, [rsp + 0x170]
mov rax, qword [rdx + 0xa0]
lea rsi, [rsp + 0xc8]
mov qword [rsi + 0xa0], rax
mov r8d, 0xa0
mov rcx, rsi
call fcn.140070050
lea rdx, [rsp + 0x218]
mov rcx, rsi
call fcn.140032edb
lea rcx, [rsp + 0x2c0]
mov rdx, rsi
call fcn.1400333f2
cmp al, bpl
mov byte [rsp + 0x60], bpl
jge 0x14003856d
inc r15d
mov qword [rsp + 0x50], r15
jmp 0x1400385a8
mov qword [rsp + 0x50], r15
lea rcx, [rsp + 0x170]
mov edx, 0xa
call fcn.140032fee
lea rcx, [rsp + 0x368]
mov edx, 0xa
call fcn.140032fee
lea rcx, [rsp + 0x218]
mov edx, 0xa
call fcn.140032fee
lea r14, [rsp + 0x2c0]
mov rax, qword [r14 + 0xa0]
lea rsi, [rsp + 0x410]
mov qword [rsi + 0xa0], rax
mov r8d, 0xa0
mov rcx, rsi
mov rdx, r14
call fcn.140070050
mov edx, 1
mov rcx, rsi
call fcn.140033086
mov rax, qword [r14 + 0xa0]
lea r15, [rsp + 0x4b8]
mov qword [r15 + 0xa0], rax
mov r8d, 0xa0
mov rcx, r15
mov rdx, r14
call fcn.140070050
mov edx, 2
mov rcx, r15
call fcn.140033086
mov rax, qword [r14 + 0xa0]
lea rdi, [rsp + 0x560]
mov qword [rdi + 0xa0], rax
mov r8d, 0xa0
mov rcx, rdi
mov rdx, r14
call fcn.140070050
mov edx, 3
mov rcx, rdi
call fcn.140033086
xor eax, eax
mov qword [rsp + 0x48], rax
lea rbx, [rsp + 0x170]
lea r12, [rsp + 0x368]
mov rcx, rbx
mov rdx, rdi
call fcn.1400333f2
cmp al, 1
ja 0x140038682
mov rcx, rbx
mov rdx, rdi
call fcn.140032f7e
mov dil, 8
jmp 0x140038684
xor edi, edi
mov rcx, rbx
mov rdx, r15
call fcn.1400333f2
cmp al, 1
ja 0x1400386a2
mov rcx, rbx
mov rdx, r15
call fcn.140032f7e
or dil, 4
mov rcx, rbx
mov rdx, rsi
call fcn.1400333f2
cmp al, 1
ja 0x1400386c0
mov rcx, rbx
mov rdx, rsi
call fcn.140032f7e
add dil, 2
mov rcx, rbx
mov rdx, r14
call fcn.1400333f2
cmp al, 1
ja 0x1400386dd
mov rcx, rbx
mov rdx, r14
call fcn.140032f7e
inc dil
mov rcx, qword [rsp + 0x48]
cmp rcx, 0x11
je 0x14003887a
mov rsi, r14
add dil, 0x30
mov rax, qword [rsp + 0x58]
mov byte [rax + rcx], dil
mov eax, ecx
and eax, 1
mov rdi, rcx
or rdi, 1
add rdi, rax
mov rcx, rbx
mov rdx, r12
call fcn.1400333f2
mov r15d, eax
mov r14b, byte [rsp + 0x60]
cmp al, r14b
setl bpl
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x168], rax
mov r8d, 0xa0
lea r13, [rsp + 0xc8]
mov rcx, r13
mov rdx, rbx
call fcn.140070050
mov rcx, r13
lea rdx, [rsp + 0x218]
call fcn.140032edb
mov rcx, rsi
mov rdx, r13
call fcn.1400333f2
cmp al, r14b
setl cl
mov edx, ecx
and dl, bpl
add bpl, cl
sub bpl, dl
test bpl, 1
jne 0x1400387d1
mov rcx, rbx
mov edx, 0xa
call fcn.140032fee
mov rcx, r12
mov edx, 0xa
call fcn.140032fee
lea rcx, [rsp + 0x218]
mov edx, 0xa
call fcn.140032fee
mov qword [rsp + 0x48], rdi
mov r14, rsi
lea rsi, [rsp + 0x410]
lea r15, [rsp + 0x4b8]
lea rdi, [rsp + 0x560]
jmp 0x140038663
mov r14b, byte [rsp + 0x60]
cmp al, r14b
jge 0x140038843
cmp r15b, r14b
jge 0x140038809
lea rsi, [rsp + 0x170]
mov edx, 1
mov rcx, rsi
call fcn.140033086
lea rdx, [rsp + 0x2c0]
mov rcx, rsi
call fcn.1400333f2
cmp al, 2
jae 0x140038843
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call fcn.140032611
test al, 1
je 0x140038843
mov rcx, qword [rsp + 0x48]
cmp rcx, 0xf
mov r8, qword [rsp + 0x50]
ja 0x14003887a
mov rax, qword [rsp + 0x58]
mov byte [rax + rdi], dl
add rcx, 2
inc r8d
mov rdi, rcx
mov rax, qword [rsp + 0x68]
jmp 0x140038855
cmp qword [rsp + 0x48], 0x11
mov rax, qword [rsp + 0x68]
mov r8, qword [rsp + 0x50]
jae 0x14003887a
mov rcx, qword [rsp + 0x58]
mov qword [rax], rcx
mov qword [rax + 8], rdi
mov word [rax + 0x10], r8w
add rsp, 0x608
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2