Function at 0x18007c170
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rax, qword [rdx]
test rax, rax
je 0x18007c6cc
mov r15, rcx
mov rcx, rax
shr rcx, 0x3d
jne 0x18007c6cc
test r9, r9
je 0x18007c6cc
mov rdi, r8
mov rcx, rax
shr rcx, 0x20
mov r8, rax
shl r8, 0x20
mov edx, dword [rdx + 0x18]
lea r10d, [rdx - 0x20]
test rcx, rcx
cmovne r10d, edx
cmovne r8, rax
mov rax, r8
shr rax, 0x30
mov rcx, r8
shl rcx, 0x10
lea edx, [r10 - 0x10]
test rax, rax
cmovne edx, r10d
cmovne rcx, r8
mov rax, rcx
shr rax, 0x38
mov r8, rcx
shl r8, 8
lea r11d, [rdx - 8]
test rax, rax
cmovne r11d, edx
cmovne r8, rcx
mov rax, r8
shr rax, 0x3c
mov rcx, r8
shl rcx, 4
lea r10d, [r11 - 4]
test rax, rax
cmovne r10d, r11d
cmovne rcx, r8
mov rax, rcx
shr rax, 0x3e
lea edx, [r10 - 2]
test rax, rax
cmovne edx, r10d
lea rax, [rcx*4]
cmovne rax, rcx
xor ecx, ecx
test rax, rax
setns cl
sub edx, ecx
mov ecx, 0xffffffa0
sub ecx, edx
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
add ecx, 0x153b0
movsxd rcx, ecx
imul r8, rcx, 0x7b4dc993
mov rcx, r8
shr rcx, 0x3f
sar r8, 0x2a
add r8d, ecx
cmp r8d, 0x51
jae 0x18007c6cc
test rax, rax
setns cl
shl rax, cl
mov r11d, r8d
shl r11, 4
lea rsi, [0x1800a2e70]
mov r8, qword [r11 + rsi]
mov rcx, rax
shr rcx, 0x20
mov eax, eax
mov ebx, r8d
shr r8, 0x20
mov r10, r8
imul r10, rcx
imul r8, rax
imul rcx, rbx
imul rbx, rax
shr rbx, 0x20
mov r14d, ecx
add r14, rbx
mov eax, r8d
add rax, r14
sub rax, 0xffffffff80000000
shr rcx, 0x20
add rcx, r10
shr r8, 0x20
add r8, rcx
shr rax, 0x20
add dx, word [r11 + rsi + 8]
add rax, r8
mov ecx, 0xffffffc0
sub ecx, edx
movzx r10d, cx
mov r8d, r10d
and r8d, 0x3f
mov rdx, rax
mov ecx, r8d
shr rdx, cl
mov r14d, 1
shl r14, cl
movzx ecx, word [r11 + rsi + 0xa]
lea r13, [r14 - 1]
mov r11, rax
and r11, r13
je 0x18007c351
movzx ebx, word [rsp + 0xb0]
cmp edx, 0x2710
mov qword [rsp + 0x38], r14
jae 0x18007c36e
cmp edx, 0x64
jae 0x18007c395
xor esi, esi
cmp edx, 0xa
setae sil
lea ebp, [rsi + rsi*8]
inc ebp
jmp 0x18007c3f8
cmp r9, 0xa
ja 0x18007c6d3
lea rsi, [0x1800a3380]
cmp dword [rsi + r9*4 - 4], edx
jbe 0x18007c324
jmp 0x18007c6d3
cmp edx, 0xf4240
jae 0x18007c3b4
cmp edx, 0x186a0
setb sil
mov r14d, 0x2710
mov ebp, 0x186a0
cmovb ebp, r14d
xor sil, 5
jmp 0x18007c3f8
cmp edx, 0x3e8
setb sil
mov r14d, 0x64
mov ebp, 0x3e8
cmovb ebp, r14d
xor sil, 3
jmp 0x18007c3f8
cmp edx, 0x5f5e100
jae 0x18007c3db
cmp edx, 0x989680
setb sil
mov r14d, 0xf4240
mov ebp, 0x989680
cmovb ebp, r14d
xor sil, 7
jmp 0x18007c3f8
cmp edx, 0x3b9aca00
setb sil
mov r14d, 0x5f5e100
mov ebp, 0x3b9aca00
cmovb ebp, r14d
xor sil, 9
movzx r12d, sil
mov r14d, r12d
sub r14d, ecx
mov esi, r14d
inc esi
cmp si, bx
jle 0x18007c4aa
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x30], r15
movsx rax, si
mov dword [rsp + 0x24], esi
mov ecx, esi
sub ecx, ebx
movsx rsi, bx
sub rax, rsi
cmp rax, r9
movsx r14, cx
cmovae r14, r9
neg r12
mov qword [rsp + 0x28], r9
mov rcx, r9
neg rcx
mov esi, 1
mov r15d, 0xcccccccd
nop word cs:[rax + rax]
lea rbx, [rcx + rsi]
mov eax, edx
xor edx, edx
div ebp
cmp rbx, 1
je 0x18007c6cc
add al, 0x30
mov byte [rdi + rsi - 1], al
cmp r14, rsi
je 0x18007c535
lea rax, [r12 + rsi]
cmp rax, 1
je 0x18007c5ec
mov eax, ebp
imul rax, r15
shr rax, 0x23
inc rsi
cmp ebp, 0xa
mov ebp, eax
jae 0x18007c460
jmp 0x18007c6cc
movabs rcx, 0xcccccccccccccccd
mul rcx
mov eax, ebp
mov ecx, r8d
shl rax, cl
mov rcx, rax
mov r10, qword [rsp + 0x38]
sub rcx, r10
jbe 0x18007c6d3
cmp rcx, r10
jbe 0x18007c6d3
shr rdx, 3
mov rcx, rax
sub rcx, rdx
cmp rcx, rdx
jbe 0x18007c506
mov r9, rax
sub r9, rdx
sub r9, rdx
mov r11d, 2
mov ecx, r8d
shl r11, cl
cmp r9, r11
jae 0x18007c6ee
sub rdx, r10
jbe 0x18007c6d3
sub rax, rdx
cmp rax, rdx
ja 0x18007c6d3
lea eax, [r14 + 2]
cmp ax, bx
jle 0x18007c700
mov byte [rdi], 0x31
mov ecx, 1
jmp 0x18007c702
mov eax, edx
mov ecx, r8d
shl rax, cl
mov edx, ebp
shl rdx, cl
mov rcx, rdx
mov r10, qword [rsp + 0x38]
sub rcx, r10
jbe 0x18007c6ce
cmp rcx, r10
mov r15, qword [rsp + 0x30]
jbe 0x18007c6d3
add rax, r11
mov rcx, rdx
sub rcx, rax
cmp rcx, rax
jbe 0x18007c58d
mov r9, rdx
sub r9, rax
sub r9, rax
mov r11d, 2
mov ecx, r8d
shl r11, cl
cmp r9, r11
jae 0x18007c71a
sub rax, r10
jbe 0x18007c6d3
sub rdx, rax
cmp rdx, rax
ja 0x18007c6d3
mov rcx, rdi
mov rdx, r14
call fcn.18007dad0
test al, 1
je 0x18007c710
mov rax, qword [rsp + 0x40]
lea ecx, [rax + 2]
movzx eax, word [rsp + 0xb0]
mov dword [rsp + 0x24], ecx
cmp cx, ax
mov rax, qword [rsp + 0x28]
jle 0x18007c715
cmp r14, rax
jae 0x18007c715
mov byte [rdi + r14], dl
inc r14
jmp 0x18007c715
dec r10d
and r10d, 0x3f
mov edx, 1
mov r15, qword [rsp + 0x30]
mov r12, qword [rsp + 0x28]
mov r9, qword [rsp + 0x38]
nop word [rax + rax]
mov rax, rdx
mov ecx, r10d
shr rdx, cl
test rdx, rdx
jne 0x18007c6d3
cmp rsi, r12
jae 0x18007c6cc
add r11, r11
lea rbx, [r11 + r11*4]
mov r11, rbx
and r11, r13
lea rcx, [rax + rax]
lea rdx, [rcx + rcx*4]
mov ecx, r8d
shr rbx, cl
add bl, 0x30
mov byte [rdi + rsi], bl
inc rsi
cmp r14, rsi
jne 0x18007c610
mov rcx, r9
sub rcx, rdx
jbe 0x18007c6d3
cmp rcx, rdx
jbe 0x18007c6d3
mov rcx, r9
sub rcx, r11
cmp rcx, r11
jbe 0x18007c686
mov r8, r9
sub r8, r11
sub r8, r11
shl rax, 2
lea rax, [rax + rax*4]
cmp r8, rax
jae 0x18007c71a
sub r11, rdx
jbe 0x18007c6d3
sub r9, r11
cmp r9, r11
ja 0x18007c6d3
mov rcx, rdi
mov rdx, r14
call fcn.18007dad0
test al, 1
je 0x18007c6c7
mov rax, qword [rsp + 0x40]
lea ecx, [rax + 2]
movzx eax, word [rsp + 0xb0]
mov dword [rsp + 0x24], ecx
cmp cx, ax
jle 0x18007c6c7
cmp r14, r12
jae 0x18007c6c7
mov byte [rdi + r14], dl
inc r14
cmp r14, r12
jbe 0x18007c71a
ud2
mov r15, qword [rsp + 0x30]
mov qword [r15], 0
mov rax, r15
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [r15], rdi
mov qword [r15 + 8], 0
mov word [r15 + 0x10], si
jmp 0x18007c6da
xor ecx, ecx
mov qword [r15], rdi
mov qword [r15 + 8], rcx
mov word [r15 + 0x10], ax
jmp 0x18007c6da
mov rax, qword [rsp + 0x28]
cmp r14, rax
ja 0x18007c6cc
mov qword [r15], rdi
mov qword [r15 + 8], r14
mov eax, dword [rsp + 0x24]
mov word [r15 + 0x10], ax
jmp 0x18007c6da