Function at 0x18003527f
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 r13, qword [rdx]
test r13, r13
je 0x1800359b3
mov rdi, r8
mov r8, qword [rdx + 8]
test r8, r8
je 0x1800359b3
mov rax, qword [rdx + 0x10]
test rax, rax
je 0x1800359b3
mov r9, r13
add r9, rax
jb 0x1800359b3
mov qword [rsp + 0x60], rcx
mov rbx, r13
sub rbx, r8
jb 0x1800359b3
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x88], rax
mov rax, r9
shr rax, 0x3d
jne 0x1800359b3
mov qword [rsp + 0xa0], rdx
movzx eax, word [rdx + 0x18]
movsx r12, ax
mov qword [rsp + 0x98], r9
mov rcx, r9
mov edx, r12d
call fcn.18003503a
mov rsi, rax
mov r15d, edx
mov rcx, rbx
mov edx, r12d
mov r8d, r15d
call fcn.180034906
mov qword [rsp + 0x58], rax
mov r14d, edx
mov qword [rsp + 0xa8], r13
mov rcx, r13
mov qword [rsp + 0x78], r12
mov edx, r12d
mov r8d, r15d
call fcn.180034906
mov r12, rax
mov r13d, edx
mov edx, 0xffffffa0
sub edx, r15d
lea rbp, [rsp + 0x368]
mov rcx, rbp
call fcn.180034ff5
movzx eax, word [rbp]
mov word [rsp + 0x56], ax
mov rbx, qword [rbp + 8]
movzx ebp, word [rbp + 0x10]
mov rcx, rsi
mov edx, r15d
mov r8, rbx
mov r9d, ebp
call fcn.1800350da
mov r15, rax
mov esi, edx
mov rcx, qword [rsp + 0x58]
mov edx, r14d
mov r8, rbx
mov r9d, ebp
call fcn.1800350da
mov qword [rsp + 0x58], rax
mov rcx, r12
mov edx, r13d
mov r8, rbx
mov r9d, ebp
call fcn.1800350da
mov qword [rsp + 0x68], rax
lea rax, [r15 + 1]
neg esi
and esi, 0x3f
mov r12, rax
mov ecx, esi
shr r12, cl
mov edx, 1
shl rdx, cl
mov r14d, 1
mov qword [rsp + 0x90], rdx
lea r13, [rdx - 1]
mov rbp, r13
mov qword [rsp + 0x70], rax
and rbp, rax
mov ecx, r12d
call fcn.18003512d
mov r8d, edx
movzx r11d, al
mov r9d, r11d
sub r9w, word [rsp + 0x56]
inc r9d
sub r15, qword [rsp + 0x58]
add r15, 2
mov r10, r13
and r10, r15
neg r11
mov ebx, 0xa
test r8d, r8d
je 0x1800359b3
mov eax, r12d
xor edx, edx
div r8d
cmp r14, 0x12
je 0x1800359b3
mov r12d, edx
mov edx, edx
mov ecx, esi
shl rdx, cl
add al, 0x30
mov byte [rdi + r14 - 1], al
add rdx, rbp
cmp rdx, r15
jb 0x180035477
lea rax, [r11 + r14]
cmp rax, 1
je 0x1800354a8
mov eax, r8d
xor edx, edx
div ebx
inc r14
mov r8d, eax
jmp 0x18003542a
mov eax, r8d
mov ecx, esi
shl rax, cl
mov rcx, qword [rsp + 0x70]
sub rcx, qword [rsp + 0x68]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
jmp 0x18003550c
mov eax, 1
cmp r14, 0x11
je 0x1800359b3
imul rdx, rbp, 0xa
mov rbp, rdx
and rbp, r13
imul rax, rax, 0xa
imul r10, r10, 0xa
mov ecx, esi
shr rdx, cl
add dl, 0x30
mov byte [rdi + r14], dl
inc r14
cmp rbp, r10
jae 0x1800354ad
mov rcx, qword [rsp + 0x70]
sub rcx, qword [rsp + 0x68]
imul rcx, rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0xb0]
mov rdx, rdi
mov r8, r14
call fcn.1800351b8
cmp qword [rsp + 0xb0], 0
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x98]
je 0x180035563
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x60]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rcx], xmm0
jmp 0x18003599f
dec rax
je 0x180035572
bsr rax, rax
xor rax, 0x3f
jmp 0x180035577
mov eax, 0x40
mov cl, byte [rcx + 0x1a]
mov byte [rsp + 0x56], cl
mov r14, qword [rsp + 0x78]
mov rcx, r14
sub rcx, rax
imul rax, rcx, 0x4d104d42
movabs rbx, 0x1344135080
add rbx, rax
shr rbx, 0x20
lea rcx, [rsp + 0xc8]
call fcn.180034db3
lea rcx, [rsp + 0x170]
mov rdx, qword [rsp + 0x80]
call fcn.180034db3
lea rcx, [rsp + 0x218]
mov rdx, qword [rsp + 0x88]
call fcn.180034db3
lea rsi, [rsp + 0x2c4]
mov r8d, 0x9c
mov rcx, rsi
xor edx, edx
call fcn.180041ed9
mov rdx, r14
mov qword [rsi + 0x9c], 1
mov dword [rsi - 4], 1
test dx, dx
js 0x180035637
lea rcx, [rsp + 0xc8]
mov rsi, rdx
call fcn.180034bf4
lea rcx, [rsp + 0x170]
mov rdx, rsi
call fcn.180034bf4
lea rcx, [rsp + 0x218]
mov rdx, rsi
jmp 0x180035645
neg edx
movsx rdx, dx
lea rcx, [rsp + 0x2c0]
call fcn.180034bf4
test bx, bx
js 0x180035661
mov edx, ebx
and edx, 0x7fff
lea rcx, [rsp + 0x2c0]
jmp 0x180035693
mov eax, ebx
neg eax
movzx esi, ax
lea rcx, [rsp + 0xc8]
mov rdx, rsi
call fcn.180034a0f
lea rcx, [rsp + 0x170]
mov rdx, rsi
call fcn.180034a0f
lea rcx, [rsp + 0x218]
mov rdx, rsi
call fcn.180034a0f
lea rdx, [rsp + 0xc8]
mov rax, qword [rdx + 0xa0]
lea rsi, [rsp + 0x368]
mov qword [rsi + 0xa0], rax
mov r8d, 0xa0
mov rcx, rsi
call fcn.180041e0d
lea rdx, [rsp + 0x218]
mov rcx, rsi
call fcn.180034e16
lea rcx, [rsp + 0x2c0]
mov rdx, rsi
call fcn.180034e7a
cmp al, byte [rsp + 0x56]
jge 0x1800356f6
mov r15, rdi
inc ebx
mov qword [rsp + 0x58], rbx
jmp 0x180035734
mov r15, rdi
mov qword [rsp + 0x58], rbx
lea rcx, [rsp + 0xc8]
mov edx, 0xa
call fcn.180034b03
lea rcx, [rsp + 0x170]
mov edx, 0xa
call fcn.180034b03
lea rcx, [rsp + 0x218]
mov edx, 0xa
call fcn.180034b03
lea rbx, [rsp + 0x2c0]
mov rsi, qword [rbx + 0xa0]
lea rdi, [rsp + 0x410]
mov qword [rdi + 0xa0], rsi
mov r8d, 0xa0
mov rcx, rdi
mov rdx, rbx
call fcn.180041e0d
mov edx, 1
mov rcx, rdi
call fcn.180034bf4
lea rdi, [rsp + 0x4b8]
mov qword [rdi + 0xa0], rsi
mov r8d, 0xa0
mov rcx, rdi
mov rdx, rbx
call fcn.180041e0d
mov edx, 2
mov rcx, rdi
call fcn.180034bf4
lea r13, [rsp + 0x560]
mov qword [r13 + 0xa0], rsi
mov r8d, 0xa0
mov rcx, r13
mov rdx, rbx
call fcn.180041e0d
mov edx, 3
mov rcx, r13
call fcn.180034bf4
xor r12d, r12d
lea rsi, [rsp + 0xc8]
lea rbp, [rsp + 0x368]
lea r14, [rsp + 0x218]
mov rdi, r15
mov rcx, rsi
mov rdx, r13
call fcn.180034ee6
test al, al
je 0x180035807
mov rcx, rsi
mov rdx, r13
call fcn.180034ef9
mov r15b, 8
jmp 0x18003580a
xor r15d, r15d
mov r13, rdi
mov rcx, rsi
lea rdi, [rsp + 0x4b8]
mov rdx, rdi
call fcn.180034ee6
test al, al
je 0x180035833
mov rcx, rsi
mov rdx, rdi
call fcn.180034ef9
or r15b, 4
lea rdi, [rsp + 0x410]
mov rcx, rsi
mov rdx, rdi
call fcn.180034ee6
test al, al
je 0x180035859
mov rcx, rsi
mov rdx, rdi
call fcn.180034ef9
add r15b, 2
mov rdi, r13
mov rcx, rsi
mov rdx, rbx
call fcn.180034ee6
test al, al
lea r13, [rsp + 0x560]
je 0x180035881
mov rcx, rsi
mov rdx, rbx
call fcn.180034ef9
inc r15b
cmp r12, 0x11
je 0x1800359b3
add r15b, 0x30
mov byte [rdi + r12], r15b
mov rcx, rsi
lea rdx, [rsp + 0x170]
call fcn.180034e7a
mov r15d, eax
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x408], rax
mov r8d, 0xa0
mov rcx, rbp
mov rdx, rsi
call fcn.180041e0d
mov rcx, rbp
mov rdx, r14
call fcn.180034e16
mov rcx, rbx
mov rdx, rbp
call fcn.180034e7a
mov cl, byte [rsp + 0x56]
cmp r15b, cl
jl 0x18003591e
cmp al, cl
jl 0x18003591e
mov rcx, rsi
mov edx, 0xa
call fcn.180034b03
lea rcx, [rsp + 0x170]
mov edx, 0xa
call fcn.180034b03
mov rcx, r14
mov edx, 0xa
call fcn.180034b03
inc r12
jmp 0x1800357e8
lea rsi, [r12 + 1]
cmp al, cl
jge 0x180035984
cmp r15b, cl
jge 0x180035955
lea rbx, [rsp + 0xc8]
mov edx, 1
mov rcx, rbx
call fcn.180034bf4
lea rdx, [rsp + 0x2c0]
mov rcx, rbx
call fcn.180034ee6
test al, al
je 0x180035984
mov rcx, rdi
mov rdx, rsi
call fcn.180034f50
test al, 1
je 0x180035984
cmp r12, 0xf
ja 0x1800359b3
mov byte [rdi + r12 + 1], dl
add r12, 2
mov rcx, qword [rsp + 0x58]
inc ecx
mov rsi, r12
mov rax, qword [rsp + 0x60]
jmp 0x180035994
cmp r12, 0x11
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
jae 0x1800359b3
mov qword [rax], rdi
mov qword [rax + 8], rsi
mov word [rax + 0x10], cx
add rsp, 0x608
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2