Function at 0x51c9a0
Capabilities:
Encode data using base64

Disassembly:
mov r12, rsp
sub r12, 0x1100
jb 0x51d4ec
cmp r12, qword [r14 + 0x10]
jbe 0x51d4ec
push rbp
mov rbp, rsp
sub rsp, 0x1178
mov qword [rsp + 0x1188], rax
mov qword [rsp + 0x1190], rbx
mov rdx, qword [rax + 0x68]
add rdx, 4
mov qword [rsp + 0xfb8], rdx
and edx, 0x3f
cmp rdx, 0x38
jae 0x51c9fc
add rdx, 0xffffffffffffffc8
neg rdx
mov edi, 1
jmp 0x51ca08
add rdx, 0xffffffffffffff88
neg rdx
mov edi, 2
mov qword [rsp + 0x1198], rcx
mov qword [rsp + 0xfd8], rdi
mov qword [rsp + 0xf20], rdx
mov rbx, rcx
shl rbx, 5
mov qword [rsp + 0x1010], rbx
lea rax, [0x0055e9e0]
mov rcx, rbx
call fcn.00466d20
mov rdx, qword [rsp + 0xfd8]
mov rsi, rdx
shl rdx, 9
lea rdi, [rsp + 0x94]
mov ecx, 0x1b0
mov rbx, rax
xor eax, eax
rep stosq qword [rdi], rax
cmp rdx, 0xd80
ja 0x51d4de
mov qword [rsp + 0x1170], rbx
lea rcx, [rdx - 0xd80]
mov qword [rsp + 0x1008], rcx
mov r8, rcx
sar r8, 0x3f
movups xmmword [rsp + 0x1070], xmm15
movups xmmword [rsp + 0x1080], xmm15
movups xmmword [rsp + 0x1090], xmm15
movups xmmword [rsp + 0x10a0], xmm15
lea rdi, [rsp + 0x10b0]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046da2b
mov rbp, qword [rbp]
movups xmmword [rsp + 0x1030], xmm15
movups xmmword [rsp + 0x1040], xmm15
movups xmmword [rsp + 0x1050], xmm15
movups xmmword [rsp + 0x1060], xmm15
lea rdi, [rsp + 0xe14]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046da14
mov rbp, qword [rbp]
mov r9, qword [rsp + 0xfb8]
shl r9, 3
mov qword [rsp + 0x1000], r9
and rdx, r8
mov qword [rsp + 0xff8], rdx
mov rax, qword [rsp + 0xf20]
mov r8, qword [rsp + 0x1188]
xor edi, edi
jmp 0x51cb4d
lea rdi, [r10 + 1]
mov rsi, r11
cmp rdi, 8
jge 0x51cdee
mov r10, rdi
shl rdi, 5
lea r11, [rsp + rdi + 0xe14]
mov qword [rsp + r10*8 + 0x1030], r11
mov r11, rsi
shl rsi, 6
imul rsi, r10
nop dword [rax]
cmp rsi, 0xd80
ja 0x51d4d1
lea r12, [rsi - 0xd80]
mov r13, r12
neg r12
sar r13, 0x3f
and r13, rsi
lea r13, [rsp + r13 + 0x94]
lea r15, [r10 + r10*2]
mov qword [rsp + r15*8 + 0x10b0], r13
mov qword [rsp + r15*8 + 0x10b8], r12
mov qword [rsp + r15*8 + 0x10c0], r12
test r12, r12
jbe 0x51d4c7
mov qword [rsp + 0xff0], r10
mov qword [rsp + r10*8 + 0x1070], r13
nop
test r10, r10
jne 0x51cd7b
mov r15, qword [r8 + 0x60]
test r15, r15
jle 0x51cc9d
nop word [rax + rax]
nop
cmp r15, 0x40
ja 0x51d4ba
mov qword [rsp + 0xf40], r12
lea rdi, [r8 + 0x20]
cmp r15, r12
cmovl r12, r15
nop dword [rax]
cmp r13, rdi
je 0x51cc95
mov qword [rsp + 0xfe8], rsi
mov qword [rsp + 0x1028], r13
mov rax, r13
mov rbx, rdi
mov rcx, r12
nop
call fcn.0046e120
mov rax, qword [rsp + 0xf20]
mov rcx, qword [rsp + 0x1008]
mov rdx, qword [rsp + 0xff8]
mov rbx, qword [rsp + 0x1170]
mov rsi, qword [rsp + 0xfe8]
mov r8, qword [rsp + 0x1188]
mov r9, qword [rsp + 0x1000]
mov r10, qword [rsp + 0xff0]
mov r11, qword [rsp + 0xfd8]
mov r13, qword [rsp + 0x1028]
mov r12, qword [rsp + 0xf40]
movups xmmword [rsp + 0x2c], xmm15
movups xmmword [rsp + 0x34], xmm15
movups xmmword [rsp + 0x44], xmm15
movups xmmword [rsp + 0x54], xmm15
movups xmmword [rsp + 0x64], xmm15
mov byte [rsp + 0x2c], pe_nt_image_headers64
lea r15, [rax + 8]
cmp r15, 0x48
ja 0x51d4ad
cmp rax, r15
ja 0x51d4a5
lea rdi, [rax - 0x48]
sar rdi, 0x3f
and rdi, rax
bswap r9
mov qword [rsp + rdi + 0x2c], r9
mov r9, qword [r8 + 0x60]
lea rdi, [r9 + 4]
cmp r12, rdi
jb 0x51d495
lea r9, [r9 + rsi]
lea r9, [r9 - 0xd7c]
mov r12, r9
neg r9
sar r12, 0x3f
and rdi, r12
lea r12, [rdi + r13]
cmp r9, r15
cmovg r9, r15
lea r13, [rsp + 0x2c]
cmp r13, r12
je 0x51cd6e
mov rax, r12
mov rbx, r13
mov rcx, r9
call fcn.0046e120
mov rax, qword [rsp + 0xf20]
mov rcx, qword [rsp + 0x1008]
mov rdx, qword [rsp + 0xff8]
mov rbx, qword [rsp + 0x1170]
mov r8, qword [rsp + 0x1188]
mov r10, qword [rsp + 0xff0]
mov r11, qword [rsp + 0xfd8]
mov r9, qword [rsp + 0x1000]
jmp 0x51cb46
mov r15, qword [rsp + 0x10b0]
mov rsi, qword [rsp + 0x10b8]
cmp rsi, r12
cmovl r12, rsi
cmp r15, r13
je 0x51cb46
mov rax, r13
mov rbx, r15
mov rcx, r12
call fcn.0046e120
mov rax, qword [rsp + 0xf20]
mov rcx, qword [rsp + 0x1008]
mov rdx, qword [rsp + 0xff8]
mov rbx, qword [rsp + 0x1170]
mov r8, qword [rsp + 0x1188]
mov r9, qword [rsp + 0x1000]
mov r10, qword [rsp + 0xff0]
mov r11, qword [rsp + 0xfd8]
jmp 0x51cb46
mov r9, qword [rsp + 0x1198]
mov r10, r9
sar r9, 0x3f
shr r9, 0x3d
add r9, r10
mov qword [rsp + 0x1008], r9
lea r11, [rsp + rdx + 0x94]
mov qword [rsp + 0x1018], r11
neg rcx
mov qword [rsp + 0xf18], rcx
mov r12, r9
sar r9, 3
mov r13, qword [rsp + 0x1010]
mov rax, r13
mov rdi, rbx
mov r15d, 1
jmp 0x51cec1
lea r13, [rcx - 0x100]
mov rax, r13
neg rax
sar rax, 0x3f
and eax, 0x100
mov r9, qword [rsp + 0xfd0]
dec r9
mov rcx, qword [rsp + 0x1020]
lea rbx, [rcx + rax]
mov r8, qword [rsp + 0x1188]
mov r15d, dword [rsp + 0xf14]
mov rax, qword [rsp + 0x1010]
mov rcx, qword [rsp + 0xf18]
mov rdx, qword [rsp + 0xff8]
mov rsi, qword [rsp + 0xfd8]
mov rdi, qword [rsp + 0x1170]
mov r10, qword [rsp + 0x1198]
mov r11, qword [rsp + 0x1018]
mov r12, qword [rsp + 0x1008]
mov qword [rsp + 0x1020], rbx
mov qword [rsp + 0xf28], r13
test r9, r9
jle 0x51cfb3
mov qword [rsp + 0xfe0], rax
xor eax, eax
mov qword [rsp + 0xfc0], rax
mov rax, qword [rsp + 0xfe0]
jmp 0x51d3d4
test rcx, rcx
jbe 0x51d473
mov qword [rsp + 0xfd0], r9
mov dword [rsp + 0xf14], r15d
lea rax, [rsp + 0x1030]
mov qword [rsp], rax
lea rax, [rsp + 0x1070]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], r11
mov qword [rsp + 0x18], rsi
nop dword [rax]
call fcn.00528880
xorps xmm15, xmm15
mov r14, qword [0x007420f0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0xf28]
nop
test rax, rax
jbe 0x51d469
lea rax, [rsp + 0xe14]
mov qword [rsp], rax
mov rax, qword [rsp + 0x1020]
mov qword [rsp + 8], rax
call fcn.0052d680
xorps xmm15, xmm15
mov r14, qword [0x007420f0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0xf28]
cmp rcx, 0x100
jae 0x51ce44
jmp 0x51d45f
and r12, 0xfffffffffffffff8
sub r10, r12
nop word [rax + rax]
cmp r10, 4
jl 0x51cfce
xor r9d, r9d
jmp 0x51d1ce
mov qword [rsp + 0xf30], r13
mov qword [rsp + 0x1020], rbx
mov qword [rsp + 0xf38], r10
xor esi, esi
jmp 0x51d04e
mov rsi, qword [rsp + 0xfc8]
inc rsi
mov r15d, dword [rsp + 0xf14]
inc r15d
mov r12, qword [rsp + 0xf38]
mov rdx, qword [rsp + 0xff8]
mov r8, qword [rsp + 0x1188]
mov r11, qword [rsp + 0x1018]
mov rax, qword [rsp + 0xf18]
mov rax, qword [rsp + 0x1010]
mov rcx, qword [rsp + 0xf18]
mov rbx, r10
mov rdi, qword [rsp + 0x1170]
mov r10, r12
mov r13, qword [rsp + 0xf30]
cmp r10, rsi
jle 0x51d16c
nop word [rax + rax]
cmp rcx, 3
jbe 0x51d198
mov qword [rsp + 0xfc8], rsi
mov dword [rsp + 0xf14], r15d
shl rsi, 5
mov qword [rsp + 0x1008], rsi
bswap r15d
mov dword [rsp + rdx + 0x94], r15d
lea rdi, [rsp + 0xf48]
mov rsi, r8
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046dd9e
mov rbp, qword [rbp]
mov rbx, r11
mov rdi, rcx
mov ecx, 4
lea rax, [rsp + 0xf48]
call fcn.0051d6c0
lea rax, [rsp + 0xf48]
call fcn.0051d520
movups xmm0, xmmword [rsp]
movups xmmword [rsp + 0x74], xmm0
movups xmm0, xmmword [rsp + 0x10]
movups xmmword [rsp + 0x84], xmm0
mov rcx, qword [rsp + 0xf30]
mov rax, qword [rsp + 0x1008]
nop
cmp rcx, rax
jb 0x51d193
mov r8, rcx
sub r8, rax
mov r9, rax
sub rax, rcx
sar rax, 0x3f
and r9, rax
mov r10, qword [rsp + 0x1020]
lea rax, [r10 + r9]
cmp r8, 0x20
mov r9d, 0x20
cmovg r8, r9
lea rbx, [rsp + 0x74]
nop dword [rax + rax]
cmp rbx, rax
je 0x51cfea
mov rcx, r8
call fcn.0046e120
mov rcx, qword [rsp + 0xf30]
mov r9d, 0x20
mov r10, qword [rsp + 0x1020]
jmp 0x51cfea
mov rcx, qword [rsp + 0x1190]
cmp rcx, rax
ja 0x51d18b
mov rbx, rcx
mov rcx, rax
mov rax, rdi
add rsp, 0x1178
pop rbp
ret
mov rdx, rax
call fcn.0046d7e0
call fcn.0046d820
mov eax, 3
nop dword [rax]
call fcn.0046d760
mov eax, r15d
bswap eax
mov dword [rdx + r9], eax
lea r9, [r12 + 1]
inc r15d
mov rax, qword [rsp + 0x1010]
mov rdx, qword [rsp + 0xff8]
mov rdi, qword [rsp + 0x1170]
cmp r9, 4
jge 0x51d24f
mov r12, r9
shl r9, 5
lea r9, [rsp + r9 + 0xe14]
movups xmm0, xmmword [r8]
movups xmmword [r9], xmm0
movups xmm0, xmmword [r8 + 0x10]
movups xmmword [r9 + 0x10], xmm0
lea r9, [r12 + r12*2]
mov rdi, qword [rsp + r9*8 + 0x10b8]
mov rax, qword [r8 + 0x60]
mov rdx, qword [rsp + r9*8 + 0x10b0]
mov r9, qword [rsp + r9*8 + 0x10c0]
cmp rax, rdi
ja 0x51d389
mov qword [rsp + 0x1008], rax
sub rdi, rax
sub rax, r9
sar rax, 0x3f
mov r9, qword [rsp + 0x1008]
and r9, rax
nop dword [rax + rax]
cmp rdi, 3
ja 0x51d1a5
jmp 0x51d37c
test rcx, rcx
jbe 0x51d372
mov qword [rsp + 0xf38], r10
mov dword [rsp + 0xf14], r15d
lea rax, [rsp + 0x1030]
mov qword [rsp], rax
lea rax, [rsp + 0x1070]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], r11
mov qword [rsp + 0x18], rsi
call fcn.0052d740
xorps xmm15, xmm15
mov r14, qword [0x007420f0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0xf28]
test rax, rax
jbe 0x51d368
lea rax, [rsp + 0xe14]
mov qword [rsp], rax
mov rax, qword [rsp + 0x1020]
mov qword [rsp + 8], rax
call fcn.00539020
xorps xmm15, xmm15
mov r14, qword [0x007420f0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0xf28]
cmp rcx, 0x80
jb 0x51d35e
lea r13, [rcx - 0x80]
mov r9, r13
neg r9
sar r9, 0x3f
and r9d, 0x80
mov r12, qword [rsp + 0x1020]
lea rbx, [r9 + r12]
mov r10, qword [rsp + 0xf38]
add r10, 0xfffffffffffffffc
mov rax, qword [rsp + 0x1010]
mov rcx, qword [rsp + 0xf18]
mov rdx, qword [rsp + 0xff8]
mov rdi, qword [rsp + 0x1170]
mov r8, qword [rsp + 0x1188]
mov r11, qword [rsp + 0x1018]
mov r15d, dword [rsp + 0xf14]
jmp 0x51cfce
mov eax, pe_nt_image_headers64
call fcn.0046d820
xor eax, eax
mov rcx, rax
call fcn.0046d760
xor eax, eax
mov rcx, rax
call fcn.0046d760
mov eax, 3
mov rcx, rdi
call fcn.0046d760
mov rcx, rdi
call fcn.0046d820
mov edx, r15d
bswap edx
mov dword [r12 + r9], edx
lea rdx, [rdi + 1]
inc r15d
mov rdi, qword [rsp + 0x1170]
mov r9, rax
mov r10, qword [rsp + 0x1198]
mov r12, qword [rsp + 0x1008]
mov qword [rsp + 0xfc0], rdx
mov rax, qword [rsp + 0x1010]
mov rdx, qword [rsp + 0xff8]
mov rdi, qword [rsp + 0xfc0]
nop dword [rax]
cmp rdi, 8
jge 0x51cf00
shl rdi, 5
lea rdi, [rsp + rdi + 0xe14]
movups xmm0, xmmword [r8]
movups xmmword [rdi], xmm0
movups xmm0, xmmword [r8 + 0x10]
movups xmmword [rdi + 0x10], xmm0
mov rdi, qword [rsp + 0xfc0]
lea rax, [rdi + rdi*2]
mov rdx, qword [rsp + rax*8 + 0x10b8]
mov r10, qword [r8 + 0x60]
mov r12, qword [rsp + rax*8 + 0x10b0]
mov rax, qword [rsp + rax*8 + 0x10c0]
cmp r10, rdx
ja 0x51d48a
mov qword [rsp + 0xff0], r10
sub rdx, r10
sub r10, rax
sar r10, 0x3f
mov rax, r9
mov r9, qword [rsp + 0xff0]
and r9, r10
cmp rdx, 3
ja 0x51d391
jmp 0x51d47d
mov eax, 0x100
call fcn.0046d820
xor eax, eax
mov rcx, rax
call fcn.0046d760
xor eax, eax
mov rcx, rax
call fcn.0046d760
mov eax, 3
mov rcx, rdx
call fcn.0046d760
mov rax, r10
mov rcx, rdx
call fcn.0046d820
mov rax, rdi
mov rcx, r12
nop dword [rax + rax]
call fcn.0046d820
mov rcx, r15
call fcn.0046d840
mov rcx, r15
mov edx, 0x48
call fcn.0046d7c0
mov rcx, r15
mov edx, 0x40
call fcn.0046d7a0
xor eax, eax
mov rcx, rax
call fcn.0046d760
mov rax, rsi
mov ecx, 0xd80
call fcn.0046d820
mov rax, rdx
mov ecx, 0xd80
call fcn.0046d820
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
nop dword [rax + rax]
call fcn.0046b480
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.0051c9a0