Function at 0x409e70
Capabilities:
Encode data using base64

Disassembly:
push r15
mov eax, 0x20e8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.0067cdd0
sub rsp, rax
movaps xmmword [rsp + 0x2090], xmm6
movaps xmmword [rsp + 0x20a0], xmm7
movaps xmmword [rsp + 0x20b0], xmm8
movaps xmmword [rsp + 0x20c0], xmm9
movaps xmmword [rsp + 0x20d0], xmm10
mov rax, qword [0x00828d60]
xor r8d, r8d
mov rsi, qword [0x00826960]
lea rbp, [0x007f6e3a]
mov eax, dword [rax + 0x3e0]
lea rbx, [rsp + 0x70]
mov rdi, rcx
mov rcx, rdx
mov dword [rsp + 0x5c], eax
shl eax, 8
cdq
idiv dword [rsi + 0x1c014]
mov rdx, rcx
mov rcx, rbx
mov dword [rsp + 0x6c], eax
add eax, 0xa
mov dword [rsp + 0x68], eax
call fcn.00410680
mov rcx, rbx
call fcn.004106f0
mov rsi, qword [0x00828c60]
mov rcx, rbx
mov rdx, qword [rsi + 0x6e0]
test rdx, rdx
cmove rdx, rbp
call fcn.00410d10
mov edx, 0xa
mov rcx, rbx
call fcn.00410720
mov r12, qword [0x00828d30]
lea rcx, [0x007f7288]
mov r8d, dword [rdi + 4]
mov r10d, dword [rdi + 8]
movzx edx, byte [rdi + 0x11a]
mov r13d, dword [r12]
lea eax, [r8 + r8*4]
mov r11d, dword [rdi + 0xc]
lea eax, [r10 + rax*2]
test r13d, r13d
cmove rcx, rbp
sub edx, 2
cmp eax, 0x32
je 0x40a840
cmp eax, 0x33
je 0x40a680
cmp eax, 0x34
je 0x40a690
cmp eax, 0x3c
je 0x40a6c0
cmp eax, 0x3d
je 0x40a6d0
cmp eax, 0x3e
je 0x40a6e0
cmp eax, 0x3f
je 0x40a6f0
cmp eax, 0x40
je 0x40a700
cmp eax, 0x64
je 0x40a710
mov r9, qword [rdi + 0x8b8]
mov rdx, qword [rsi + 0x6f8]
lea rbp, [0x007f6e3a]
mov dword [rsp + 0x30], r11d
mov qword [rsp + 0x38], rcx
mov rcx, rbx
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], r8d
lea r8, str._s___d._d._d__s
test rdx, rdx
cmove rdx, rbp
call fcn.00410e50
mov rdx, qword [rsi + 0x728]
lea r9, [rdi + 0x14]
mov rcx, rbx
lea r8, [0x007f72b0]
test rdx, rdx
cmove rdx, rbp
call fcn.00410e50
mov r11d, dword [rdi + 0x120]
test r11d, r11d
je 0x40a642
mov r9, qword [rsi + 0xaa0]
test r9, r9
cmove r9, rbp
mov rdx, qword [rsi + 0xa70]
mov rcx, rbx
lea rbp, [0x007f6e3a]
lea r8, [0x007f72b0]
lea r13, [0x007f7288]
test rdx, rdx
cmove rdx, rbp
call fcn.00410e50
mov rdx, qword [rsi + 0xa58]
lea r8, [0x007f72b6]
mov rcx, rbx
mov r9d, dword [rdi + 0x11c]
test rdx, rdx
cmove rdx, rbp
call fcn.00410e50
mov rcx, rbx
call fcn.004106f0
mov rdx, qword [rsi + 0x788]
mov rcx, rbx
test rdx, rdx
cmove rdx, rbp
call fcn.00410d10
mov edx, 0xa
mov rcx, rbx
call fcn.00410720
mov r8d, dword [r12]
mov rax, rbp
mov rcx, rbx
mov rdx, qword [rsi + 0x7a0]
mov r9d, dword [rdi + 0x138]
test r8d, r8d
cmovne rax, r13
add r9, qword [rdi + 0x860]
test rdx, rdx
cmove rdx, rbp
mov qword [rsp + 0x20], rax
lea r8, [0x007f72bc]
call fcn.00410e50
mov r9d, dword [r12]
mov rax, rbp
mov rcx, rbx
mov rdx, qword [rsi + 0x7b8]
lea r8, [0x007f72bc]
test r9d, r9d
mov r9d, dword [rdi + 0x13c]
cmovne rax, r13
add r9, qword [rdi + 0x860]
test rdx, rdx
cmove rdx, rbp
mov qword [rsp + 0x20], rax
call fcn.00410e50
mov rcx, rbx
call fcn.004106f0
mov rdx, qword [rsi + 0x7d0]
mov rcx, rbx
test rdx, rdx
cmove rdx, rbp
call fcn.00410d10
mov edx, 0xa
mov rcx, rbx
call fcn.00410720
mov r10d, dword [r12]
lea rdx, str.Product
mov r14d, dword [rdi + 0x12c]
test r10d, r10d
cmovne rbp, r13
add r14, qword [rdi + 0x860]
mov rcx, r14
call sub.SHELL32.dll_StrStrIW
test rax, rax
je 0x40a892
mov r9d, dword [rdi + 0x144]
add r9, qword [rdi + 0x860]
mov rdx, qword [rsi + 0x7e8]
mov rcx, rbx
mov qword [rsp + 0x20], rbp
lea r14, [0x007f6e3a]
lea r8, [0x007f72bc]
test rdx, rdx
cmove rdx, r14
call fcn.00410e50
mov ecx, dword [r12]
lea rax, [0x007f7288]
mov r9d, dword [rdi + 0x128]
test ecx, ecx
cmovne r14, rax
mov rax, qword [rdi + 0x860]
add r9, rax
cmp word [r9], 0
jne 0x40a1f5
mov r9d, dword [rdi + 0x144]
add r9, rax
mov rdx, qword [rsi + 0x800]
lea rax, [0x007f6e3a]
mov rcx, rbx
mov qword [rsp + 0x20], r14
lea r8, [0x007f72b0]
test rdx, rdx
cmove rdx, rax
call fcn.00410e50
mov ebp, dword [rdi + 0x124]
lea rdx, str.Vendor
add rbp, qword [rdi + 0x860]
mov rcx, rbp
call sub.SHELL32.dll_StrStrIW
test rax, rax
je 0x40a89a
mov r9d, dword [rdi + 0x140]
add r9, qword [rdi + 0x860]
mov rdx, qword [rsi + 0x818]
mov rcx, rbx
lea rbp, [0x007f6e3a]
lea r8, [0x007f72b0]
test rdx, rdx
cmove rdx, rbp
call fcn.00410e50
mov edx, dword [rdi + 0x8b0]
mov eax, dword [rdi + 0x148]
test edx, edx
je 0x40a655
mov r9, qword [rsi + 0xa28]
test r9, r9
cmove r9, rbp
mov rdx, qword [rsi + 0xa10]
mov rcx, rbx
mov dword [rsp + 0x20], eax
lea r12, [0x007f6e3a]
lea r8, str._s__d_
test rdx, rdx
cmove rdx, r12
call fcn.00410e50
mov rcx, rbx
call fcn.004106f0
mov rdx, qword [rsi + 0x830]
mov rcx, rbx
test rdx, rdx
cmove rdx, r12
call fcn.00410d10
mov edx, 0xa
mov rcx, rbx
call fcn.00410720
mov ebp, dword [rdi + 0x134]
add rbp, qword [rdi + 0x860]
movzx eax, byte [rbp]
test al, al
je 0x40a830
cmp al, 1
je 0x40a670
mov rdx, qword [rsi + 0x890]
lea r14, [0x007f6e3a]
test rdx, rdx
cmove rdx, r12
lea r12, [rsp + 0x90]
mov rcx, r12
call fcn.0068bb48
mov rdx, qword [rsi + 0x848]
mov r9, r12
mov rcx, rbx
lea r8, [0x007f72b0]
test rdx, rdx
cmove rdx, r14
call fcn.00410e50
movzx r13d, byte [rbp + 1]
xor eax, eax
mov word [rsp + 0x90], ax
test r13b, 1
je 0x40a37b
mov rdx, qword [rsi + 0x8c0]
mov rcx, r12
test rdx, rdx
cmove rdx, r14
call fcn.0068bb68
test r13b, 2
je 0x40a39e
mov rdx, qword [rsi + 0x8d8]
lea rax, [0x007f6e3a]
mov rcx, r12
test rdx, rdx
cmove rdx, rax
call fcn.0068bb68
test r13b, 4
je 0x40a3c1
mov rdx, qword [rsi + 0x8f0]
lea rax, [0x007f6e3a]
mov rcx, r12
test rdx, rdx
cmove rdx, rax
call fcn.0068bb68
test r13b, 8
je 0x40a3e4
mov rdx, qword [rsi + 0x908]
lea rax, [0x007f6e3a]
mov rcx, r12
test rdx, rdx
cmove rdx, rax
call fcn.0068bb68
test r13b, r13b
js 0x40a850
mov rdx, qword [rsi + 0x8a8]
mov r9, r12
mov rcx, rbx
lea r13, [0x007f6e3a]
lea r8, [0x007f72b0]
test rdx, rdx
cmove rdx, r13
call fcn.00410e50
movzx r9d, byte [rbp + 2]
cmp r9b, 0xff
je 0x40a43c
mov rdx, qword [rsi + 0x938]
lea r8, [0x007f72d4]
mov rcx, rbx
test rdx, rdx
cmove rdx, r13
call fcn.00410e50
mov r9d, dword [rbp + 4]
cmp r9d, 0xffffffff
je 0x40a48e
mov rcx, qword [rsi + 0x980]
lea r8, [0x007f6e3a]
mov eax, r9d
mov edx, 0x88888889
test rcx, rcx
cmove rcx, r8
mul edx
mov r9d, edx
mov rdx, qword [rsi + 0x950]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
test rdx, rdx
cmove rdx, r8
shr r9d, 5
lea r8, [0x007f72de]
call fcn.00410e50
mov r9d, dword [rbp + 8]
cmp r9d, 0xffffffff
je 0x40a4e3
mov rax, qword [rsi + 0x980]
lea r8, [0x007f6e3a]
mov edx, 0x88888889
test rax, rax
cmove rax, r8
mov rcx, rax
mov eax, r9d
mul edx
mov r9d, edx
mov rdx, qword [rsi + 0x968]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
test rdx, rdx
cmove rdx, r8
shr r9d, 5
lea r8, [0x007f72de]
call fcn.00410e50
mov rcx, rbx
mov ebp, dword [rdi + 0x130]
add rbp, qword [rdi + 0x860]
lea r12, [0x007f6e3a]
call fcn.004106f0
mov rdx, qword [rsi + 0x998]
mov rcx, rbx
test rdx, rdx
cmove rdx, r12
call fcn.00410d10
mov edx, 0xa
mov rcx, rbx
call fcn.00410720
cmp word [rbp], 0
je 0x40a720
mov edi, 1
pxor xmm9, xmm9
movsd xmm10, qword [0x007f8140]
movsd xmm8, qword [0x007f8148]
jmp 0x40a5f3
mov r13, r12
mov rax, qword [rsi + 0x9c8]
mov ecx, r14d
mov r8d, r15d
pxor xmm0, xmm0
test rax, rax
cmove rax, r12
imul ecx, r14d
imul r8d, r15d
add ecx, r8d
cvtsi2sd xmm0, ecx
ucomisd xmm9, xmm0
sqrtsd xmm7, xmm0
jbe 0x40a594
mov qword [rsp + 0x60], rax
call fcn.0067dc40
mov rax, qword [rsp + 0x60]
divsd xmm7, xmm8
mov r8d, r14d
mov rcx, rbx
mov r9, qword [rsi + 0x9b0]
lea rdx, str._d_s_x__d_s___.1f__s___.3f__s
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], r13
movsd qword [rsp + 0x40], xmm6
test r9, r9
mov dword [rsp + 0x20], r15d
cmove r9, r12
add rdi, 1
mov qword [rsp + 0x28], r9
movsd qword [rsp + 0x30], xmm7
call fcn.00410c00
mov rcx, rbx
call fcn.004107c0
movzx eax, word [rbp]
cmp eax, dword [rsp + 0x5c]
jle 0x40a720
movzx r14d, word [rbp + rdi*4 - 2]
mov rcx, rbx
mov dword [rsp + 0x5c], edi
pxor xmm6, xmm6
movzx r15d, word [rbp + rdi*4]
call fcn.00410780
pxor xmm0, xmm0
cvtsi2sd xmm0, r14d
cvtsi2sd xmm6, r15d
divsd xmm6, xmm0
ucomisd xmm6, xmm10
jbe 0x40a550
mov rdx, qword [rsi + 0x9e0]
test rdx, rdx
cmove rdx, r12
mov r13, rdx
jmp 0x40a553
mov r9, qword [rsi + 0xa88]
test r9, r9
cmove r9, rbp
jmp 0x40a039
mov r9, qword [rsi + 0xa40]
test r9, r9
cmove r9, rbp
jmp 0x40a297
mov rdx, qword [rsi + 0x878]
jmp 0x40a312
cmp dl, 1
jbe 0x409fbb
mov eax, 1
jmp 0x40a6a0
xor eax, eax
cmp dl, 2
setb al
add eax, 2
nop dword [rax + rax]
lea rdx, [0x007f8040]
cdqe
shl rax, 4
mov r9, qword [rdx + rax + 8]
jmp 0x409fc2
xor eax, eax
cmp dl, 2
setb al
add eax, 5
jmp 0x40a6a0
xor eax, eax
cmp dl, 1
seta al
add eax, 7
jmp 0x40a6a0
xor eax, eax
cmp dl, 1
seta al
add eax, 9
jmp 0x40a6a0
xor eax, eax
cmp dl, 1
seta al
add eax, 0xb
jmp 0x40a6a0
cmp dl, 1
jbe 0x409fbb
mov eax, 0xd
jmp 0x40a6a0
xor eax, eax
cmp dl, 1
seta al
add eax, 0xe
jmp 0x40a6a0
mov rcx, rbx
call fcn.004106f0
mov rcx, rbx
call fcn.00410780
mov rcx, rbx
call fcn.00410750
mov rax, qword [rsi + 0x9f8]
lea r8, [0x007f6e3a]
mov rcx, rbx
mov rsi, qword [0x00828d60]
test rax, rax
cmovne r8, rax
mov edx, dword [rsi + 0x500]
call fcn.004109e0
mov edx, 0xa
mov rcx, rbx
call fcn.00410720
mov rcx, rbx
call fcn.004107c0
mov rax, qword [0x00826960]
mov r9d, dword [rax + 0x1c014]
mov rax, qword [0x00828d60]
mov eax, dword [rax + 0x3f8]
mov dword [rsp + 0x5c], eax
shl eax, 8
cdq
idiv r9d
mov r8d, eax
mov rax, qword [0x00828d60]
add r8d, dword [rsp + 0x8c]
mov eax, dword [rax + 0x248]
shl eax, 8
cdq
idiv r9d
mov edx, 0x66666667
imul ecx, eax, 0x5f
mov eax, ecx
sar ecx, 0x1f
imul edx
mov rax, qword [0x00826940]
sar edx, 2
sub edx, ecx
mov rcx, qword [rax]
add edx, dword [rsp + 0x80]
add edx, dword [rsp + 0x6c]
add edx, dword [rsp + 0x68]
call fcn.00407970
nop
movaps xmm6, xmmword [rsp + 0x2090]
movaps xmm7, xmmword [rsp + 0x20a0]
movaps xmm8, xmmword [rsp + 0x20b0]
movaps xmm9, xmmword [rsp + 0x20c0]
movaps xmm10, xmmword [rsp + 0x20d0]
add rsp, 0x20e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsi + 0x860]
jmp 0x40a312
cmp dl, 1
jbe 0x409fbb
xor eax, eax
jmp 0x40a6a0
mov rdx, qword [rsi + 0x920]
lea r14, [0x007f6e3a]
mov rcx, r12
test rdx, rdx
cmove rdx, r14
call fcn.0068bb68
cmp r13b, 0xff
jne 0x40a3ed
mov rdx, qword [rsi + 0x890]
mov rcx, r12
test rdx, rdx
cmove rdx, r14
call fcn.0068bb68
jmp 0x40a3ed
mov r9, r14
jmp 0x40a199
lea rdx, str.Quanta
mov rcx, rbp
call sub.SHELL32.dll_StrStrIW
test rax, rax
jne 0x40a243
mov r9, rbp
jmp 0x40a251