Function at 0x140044063
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], r8
mov eax, 0xa0
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x40], rsp
mov eax, 0xa0
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x48], rsp
mov eax, 0xa0
call fcn.140074a70
sub rsp, rax
mov r9, rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x80], rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov r10, rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x10], rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov r12, rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov r14, rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov r8, rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x38], rsp
mov eax, 0xb0
call fcn.140074a70
sub rsp, rax
mov qword [rbp + 0x48], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov rax, rsp
mov rdi, qword [rdx]
test rdi, rdi
je 0x140044c3f
mov qword [rbp], r8
mov qword [rbp + 0x20], rcx
mov rbx, qword [rdx + 8]
test rbx, rbx
je 0x140044c3f
mov r15, qword [rdx + 0x10]
test r15, r15
je 0x140044c3f
mov qword [rbp + 0x18], r10
mov rcx, rdi
add rcx, r15
jb 0x140044c3f
mov rsi, rdi
sub rsi, rbx
jb 0x140044c3f
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x28], r9
mov rax, rcx
shr rax, 0x3d
jne 0x140044c3f
mov qword [rbp - 0x60], rdx
movzx r13d, word [rdx + 0x18]
sub rsp, 0x20
mov qword [rbp - 0x58], rcx
mov edx, r13d
call fcn.140043dc6
add rsp, 0x20
mov ecx, r13d
sub cx, dx
js 0x140044c3f
mov r8d, edx
and ecx, 0x3f
mov r9, rsi
shl r9, cl
mov rdx, r9
shr rdx, cl
cmp rdx, rsi
jne 0x140044c3f
mov r10, rdi
shl r10, cl
mov rdx, r10
shr rdx, cl
cmp rdx, rdi
jne 0x140044c3f
mov qword [rbp + 0x60], r10
mov qword [rbp + 0x58], r9
mov qword [rbp - 0x38], r12
mov qword [rbp + 0x28], r14
mov ecx, 0xffffffa0
sub ecx, r8d
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
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 0x140044c3f
mov word [rbp + 0x46], r13w
movzx edx, r13w
mov qword [rbp - 8], rdx
movsx rdx, dx
mov qword [rbp - 0x50], rdx
mov ecx, ecx
shl rcx, 4
mov qword [rbp + 8], rcx
lea rdx, [0x140092fb8]
mov r14, qword [rcx + rdx]
movzx r12d, word [rcx + rdx + 8]
sub rsp, 0x20
mov rcx, rax
mov edx, r8d
mov esi, r8d
mov r8, r14
mov r9d, r12d
call fcn.140043e66
add rsp, 0x20
mov qword [rbp - 0x70], rax
mov r13d, edx
sub rsp, 0x20
mov rcx, qword [rbp + 0x58]
mov edx, esi
mov r8, r14
mov r9d, r12d
call fcn.140043e66
add rsp, 0x20
mov qword [rbp - 0x78], rax
sub rsp, 0x20
mov rcx, qword [rbp + 0x60]
mov edx, esi
mov r8, r14
mov r9d, r12d
call fcn.140043e66
add rsp, 0x20
movabs rcx, 0x19f5daaaae7423b4
lea r8, [rcx + 1]
xor r8, rcx
mov rsi, qword [rbp - 0x70]
add r8, rsi
neg r13d
and r13d, 0x3f
mov r12, r8
mov ecx, r13d
shr r12, cl
movabs rcx, 0x86fe12163d7ea2b0
lea rdx, [rcx + 1]
xor rdx, rcx
mov qword [rbp + 0x58], r13
mov ecx, r13d
shl rdx, cl
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x68], rdx
lea r14, [rdx - 1]
mov r13, r14
mov qword [rbp - 0x18], r8
and r13, r8
sub rsp, 0x20
mov ecx, r12d
call fcn.140043eb9
add rsp, 0x20
mov r10d, edx
movzx ecx, al
lea rax, [0x140092fb8]
mov rdx, qword [rbp + 8]
movzx eax, word [rdx + rax + 0xa]
mov qword [rbp + 0x60], rcx
sub cx, ax
inc ecx
mov dword [rbp + 0x34], ecx
mov rcx, rsi
sub rcx, qword [rbp - 0x78]
movabs rax, 0x5a6dc41ecab5ef60
lea rsi, [rax + 2]
xor rsi, rax
add rsi, rcx
mov qword [rbp + 8], r14
mov r11, r14
movabs r14, 0xd66a9308088220e8
and r11, rsi
xor r9d, r9d
mov eax, r12d
xor edx, edx
div r10d
lea rcx, [r14 + 0x11]
xor rcx, r14
cmp r9, rcx
je 0x140044c3f
mov r12d, edx
add al, 0x30
mov rcx, qword [rbp + 0x50]
mov byte [rcx + r9], al
movabs rdx, 0x31348ee1d665d338
lea r8, [rdx + 1]
mov eax, r12d
mov rcx, qword [rbp + 0x58]
shl rax, cl
xor r8, rdx
add r8, r9
add rax, r13
cmp rax, rsi
jb 0x140044410
cmp r9, qword [rbp + 0x60]
je 0x140044455
mov eax, r10d
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
mov r9, r8
cmp r10d, 0xa
mov r10d, eax
jae 0x14004439e
jmp 0x140044c3f
mov edx, r10d
mov rcx, qword [rbp + 0x58]
shl rdx, cl
mov r10, qword [rbp - 0x18]
sub r10, qword [rbp - 0x10]
movabs rcx, 0x9afb7f750ce2590
lea r9, [rcx + 1]
xor r9, rcx
sub rsp, 0x50
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x38], rdx
jmp 0x140044517
movabs rdx, 0xe029ddc820c2c320
movabs r12, 0xbf116e411b60e9e4
movabs rsi, 0xb9a130c4dc0fdd50
movabs r10, 0xb2362103675de8ec
mov eax, 1
movabs rcx, 0x25891cc1c89ef066
lea r9, [r10 + 0x11]
xor r9, r10
lea r10, [rsi + 0xa]
xor r10, rsi
lea rsi, [r12 + 0xa]
xor rsi, r12
lea r12, [rcx + 6]
xor r12, rcx
cmp r8, r9
jae 0x140044c3f
mov r14, r13
imul r14, r10
mov r13, r14
and r13, qword [rbp + 8]
mov rcx, qword [rbp + 0x58]
shr r14, cl
imul rax, rsi
imul r11, r12
add r14b, 0x30
mov rcx, qword [rbp + 0x50]
mov byte [rcx + r8], r14b
lea rcx, [rdx + 1]
xor rcx, rdx
add r8, rcx
cmp r13, r11
jae 0x1400444a9
mov rcx, qword [rbp - 0x18]
sub rcx, qword [rbp - 0x10]
imul rcx, rax
sub rsp, 0x50
mov qword [rsp + 0x40], rax
mov rax, qword [rbp - 0x68]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x30], rcx
mov rsi, qword [rbp - 0x20]
mov rcx, rsi
mov rdx, qword [rbp + 0x50]
mov r9d, dword [rbp + 0x34]
call fcn.140043f44
add rsp, 0x50
cmp qword [rsi], 0
mov r9, qword [rbp - 0x28]
je 0x140044550
mov rax, qword [rsi + 0x10]
mov rcx, qword [rbp + 0x20]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
jmp 0x140044c2e
movabs rax, 0xe65185a0bf74454b
movabs rcx, 0xc9e8d45e09991c4d
movabs rsi, 0x707b2b41fe908455
movabs r13, 0xd3c4efbeaf7d7c1
mov rdx, qword [rbp - 0x58]
dec rdx
je 0x14004458b
bsr rdx, rdx
xor rdx, 0x3f
jmp 0x140044590
mov edx, 0x40
mov r8, qword [rbp - 0x50]
sub r8, rdx
mov rdx, qword [rbp - 0x60]
mov dl, byte [rdx + 0x1a]
mov byte [rbp + 0x58], dl
lea rdx, [rcx + 0x3af034c2]
xor rdx, rcx
imul rdx, r8
movabs r12, 0x1344135080
add r12, rdx
lea ecx, [rax + 0x20]
xor ecx, eax
shr r12, cl
sub rsp, 0x20
xor r14d, r14d
mov r8d, 0xa0
mov rcx, r9
xor edx, edx
call fcn.140085360
mov rdx, qword [rbp - 0x28]
add rsp, 0x20
lea rax, [rsi + 0x28]
xor rax, rsi
lea ecx, [r13 + 0x20]
xor ecx, r13d
movabs r8, 0x3e30afbb12d81b24
lea r9, [r8 + 1]
xor r9, r8
cmp r14, rax
je 0x140044c3f
mov r8, rdi
shr r8, cl
mov dword [rdx + r14*4], edi
add r14, r9
shr rdi, 0x20
mov rdi, r8
jne 0x140044602
movabs rsi, 0xbb58b682a9ea1a5e
movabs r13, 0xb7a18418894225a4
sub rsp, 0x20
mov r8d, 0xa0
mov rdi, qword [rbp + 0x48]
mov rcx, rdi
call fcn.140084cc0
add rsp, 0x20
mov qword [rdi + 0xa0], r14
sub rsp, 0x20
xor edi, edi
mov r8d, 0xa0
mov r14, qword [rbp - 0x48]
mov rcx, r14
xor edx, edx
call fcn.140085360
add rsp, 0x20
movabs rcx, 0xf3841b922e6d13
lea rax, [rcx + 0x28]
xor rax, rcx
cmp rdi, rax
je 0x140044c3f
mov dword [r14 + rdi*4], ebx
lea ecx, [rsi + 0x20]
xor ecx, esi
mov rdx, rbx
shr rdx, cl
lea rcx, [r13 + 1]
xor rcx, r13
add rdi, rcx
shr rbx, 0x20
mov rbx, rdx
jne 0x140044685
mov qword [rbp + 0x60], r12
movabs rsi, 0xee9ce67ad200f4e6
movabs rbx, 0xcd393728136f7416
mov rdx, r14
movabs r14, 0x4a58436895dc2205
sub rsp, 0x20
mov r8d, 0xa0
mov r12, qword [rbp + 0x38]
mov rcx, r12
call fcn.140084cc0
add rsp, 0x20
mov qword [r12 + 0xa0], rdi
sub rsp, 0x20
xor edi, edi
mov r8d, 0xa0
mov r12, qword [rbp - 0x40]
mov rcx, r12
xor edx, edx
call fcn.140085360
add rsp, 0x20
mov r13, qword [rbp + 0x28]
lea rax, [r14 + 0x28]
xor rax, r14
cmp rdi, rax
je 0x140044c3f
mov dword [r12 + rdi*4], r15d
lea ecx, [rbx + 0x20]
xor ecx, ebx
mov rax, r15
shr rax, cl
lea rcx, [rsi + 1]
xor rcx, rsi
add rdi, rcx
shr r15, 0x20
mov r15, rax
jne 0x140044719
sub rsp, 0x20
mov r8d, 0xa0
mov r14, qword [rbp]
mov rcx, r14
mov rdx, r12
call fcn.140084cc0
add rsp, 0x20
mov qword [r14 + 0xa0], rdi
mov rcx, r13
add rcx, 4
sub rsp, 0x20
mov r8d, 0x9c
xor edx, edx
call fcn.140085360
add rsp, 0x20
movabs rax, 0xad002f5c51c7d12a
lea rcx, [rax + 1]
xor rcx, rax
mov qword [r13 + 0xa0], rcx
mov dword [r13], 1
cmp word [rbp + 0x46], 0
jns 0x1400447c5
mov rax, qword [rbp - 8]
neg eax
movsx rdx, ax
sub rsp, 0x20
mov rcx, r13
jmp 0x1400447eb
sub rsp, 0x20
mov rcx, qword [rbp + 0x48]
mov rsi, qword [rbp - 8]
mov rdx, rsi
call fcn.14003f310
mov rcx, qword [rbp + 0x38]
mov rdx, rsi
call fcn.14003f310
mov rcx, r14
mov rdx, rsi
call fcn.14003f310
add rsp, 0x20
mov rsi, qword [rbp + 0x18]
mov r12, qword [rbp + 0x60]
test r12w, r12w
js 0x140044820
movzx edx, r12w
sub rsp, 0x20
mov rcx, r13
call fcn.140043c90
add rsp, 0x20
mov rdi, qword [rbp + 0x10]
mov rbx, qword [rbp + 0x48]
jmp 0x14004485b
mov eax, r12d
neg eax
movsx rdi, ax
sub rsp, 0x20
mov rbx, qword [rbp + 0x48]
mov rcx, rbx
mov rdx, rdi
call fcn.140043c90
mov rcx, qword [rbp + 0x38]
mov rdx, rdi
call fcn.140043c90
mov rcx, r14
mov rdx, rdi
call fcn.140043c90
add rsp, 0x20
mov rdi, qword [rbp + 0x10]
mov rax, qword [rbx + 0xa0]
mov r15, qword [rbp - 0x38]
mov qword [r15 + 0xa0], rax
sub rsp, 0x20
mov r8d, 0xa0
mov rcx, r15
mov rdx, rbx
call fcn.140084cc0
mov rcx, r15
mov rdx, r14
call fcn.14003f13c
mov rcx, r13
mov rdx, r15
call fcn.14003f766
add rsp, 0x20
cmp al, byte [rbp + 0x58]
jge 0x1400448aa
inc r12d
mov qword [rbp + 0x60], r12
jmp 0x1400448da
sub rsp, 0x20
mov rcx, rbx
mov edx, 0xa
call fcn.14003f264
mov rcx, qword [rbp + 0x38]
mov edx, 0xa
call fcn.14003f264
mov rcx, r14
mov edx, 0xa
call fcn.14003f264
add rsp, 0x20
movabs rbx, 0x7700e8871c7e94c0
movabs r15, 0x9b9f99b65141705
mov rax, qword [r13 + 0xa0]
mov r14, qword [rbp - 0x30]
mov qword [r14 + 0xa0], rax
sub rsp, 0x20
mov r8d, 0xa0
mov rcx, r14
mov rdx, r13
call fcn.140084cc0
add rsp, 0x20
movabs rax, 0x11a5a783a981e8cc
lea rdx, [rax + 1]
xor rdx, rax
sub rsp, 0x20
mov rcx, r14
call fcn.14003f310
add rsp, 0x20
mov rax, qword [r13 + 0xa0]
mov qword [rdi + 0xa0], rax
sub rsp, 0x20
mov r8d, 0xa0
mov rcx, rdi
mov rdx, r13
call fcn.140084cc0
add rsp, 0x20
movabs rax, 0xa9e5fa548dac09e4
lea rdx, [rax + 2]
xor rdx, rax
sub rsp, 0x20
mov rcx, rdi
call fcn.14003f310
add rsp, 0x20
mov rax, qword [r13 + 0xa0]
mov qword [rsi + 0xa0], rax
sub rsp, 0x20
mov r8d, 0xa0
mov rcx, rsi
mov rdx, r13
call fcn.140084cc0
add rsp, 0x20
movabs rax, 0x9ec0fb0e4c8af581
lea rdx, [rax + 1]
xor rdx, rax
sub rsp, 0x20
mov rcx, rsi
call fcn.14003f310
add rsp, 0x20
xor r14d, r14d
mov r12, qword [rbp + 0x48]
sub rsp, 0x20
mov rcx, r12
mov rdx, rsi
call fcn.14003f702
add rsp, 0x20
cmp al, 1
ja 0x140044a00
sub rsp, 0x20
mov rcx, r12
mov rdx, rsi
call fcn.14003f1e7
add rsp, 0x20
mov sil, 8
jmp 0x140044a02
xor esi, esi
sub rsp, 0x20
mov rcx, r12
mov rdx, rdi
call fcn.14003f702
add rsp, 0x20
cmp al, 1
ja 0x140044a30
sub rsp, 0x20
mov rcx, r12
mov rdx, rdi
call fcn.14003f1e7
add rsp, 0x20
or sil, 4
sub rsp, 0x20
mov rcx, r12
mov rdi, qword [rbp - 0x30]
mov rdx, rdi
call fcn.14003f702
add rsp, 0x20
cmp al, 1
ja 0x140044a62
sub rsp, 0x20
mov rcx, r12
mov rdx, rdi
call fcn.14003f1e7
add rsp, 0x20
add sil, 2
sub rsp, 0x20
mov rcx, r12
mov rdx, r13
call fcn.14003f702
add rsp, 0x20
cmp al, 1
ja 0x140044a8f
sub rsp, 0x20
mov rcx, r12
mov rdx, r13
call fcn.14003f1e7
add rsp, 0x20
inc sil
lea rax, [r15 + 0xf]
xor rax, r15
cmp r14, rax
je 0x140044c3f
add sil, 0x30
mov rax, qword [rbp + 0x50]
mov byte [rax + r14], sil
lea r13, [rbx + 1]
xor r13, rbx
add r13, r14
sub rsp, 0x20
mov rcx, r12
mov rdx, qword [rbp + 0x38]
call fcn.14003f766
add rsp, 0x20
mov edi, eax
mov rax, qword [r12 + 0xa0]
mov rsi, qword [rbp - 0x80]
mov qword [rsi + 0xa0], rax
sub rsp, 0x20
mov r8d, 0xa0
mov rcx, rsi
mov rdx, r12
call fcn.140084cc0
mov rcx, rsi
mov rdx, qword [rbp]
call fcn.14003f13c
mov rcx, qword [rbp + 0x28]
mov rdx, rsi
call fcn.14003f766
add rsp, 0x20
mov cl, byte [rbp + 0x58]
cmp dil, cl
jl 0x140044b64
cmp al, cl
jl 0x140044b64
sub rsp, 0x20
mov r12, qword [rbp + 0x48]
mov rcx, r12
mov edx, 0xa
call fcn.14003f264
mov rcx, qword [rbp + 0x38]
mov edx, 0xa
call fcn.14003f264
mov rcx, qword [rbp]
mov edx, 0xa
call fcn.14003f264
add rsp, 0x20
mov r14, r13
mov rsi, qword [rbp + 0x18]
mov r13, qword [rbp + 0x28]
mov rdi, qword [rbp + 0x10]
jmp 0x1400449d1
cmp al, cl
jge 0x140044c00
cmp dil, cl
jge 0x140044ba6
movabs rax, 0x922e4fe1130eba02
lea rdx, [rax + 1]
xor rdx, rax
sub rsp, 0x20
mov rsi, qword [rbp + 0x48]
mov rcx, rsi
call fcn.14003f310
mov rcx, rsi
mov rdx, qword [rbp + 0x28]
call fcn.14003f702
add rsp, 0x20
cmp al, 2
jae 0x140044c00
sub rsp, 0x20
mov rcx, qword [rbp + 0x50]
mov rdx, r13
call fcn.14003e7e0
add rsp, 0x20
test al, 1
je 0x140044c00
movabs rax, 0xb5e93804425704c2
lea rcx, [rax + 0x10]
xor rcx, rax
cmp r14, rcx
mov r8, qword [rbp + 0x20]
mov r9, qword [rbp + 0x60]
jae 0x140044c3f
mov rax, qword [rbp + 0x50]
mov byte [rax + r13], dl
movabs rax, 0x5ba082b99a482b5
lea rcx, [rax + 2]
xor rcx, rax
add r14, rcx
inc r9d
mov r13, r14
jmp 0x140044c1e
movabs rax, 0x2ec2d514515d4c26
lea rcx, [rax + 0x10]
xor rcx, rax
cmp r14, rcx
mov r8, qword [rbp + 0x20]
mov r9, qword [rbp + 0x60]
ja 0x140044c3f
mov rax, qword [rbp + 0x50]
mov qword [r8], rax
mov qword [r8 + 8], r13
mov word [r8 + 0x10], r9w
lea rsp, [rbp + 0x68]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2