Function at 0x180059500
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r15, r8
mov r10, r9
mov r8, rdx
mov r13d, ecx
lea edx, [rcx - 0xb]
mov dword [rsp + 0x80], edx
movzx ebx, byte [rsp + 0x80]
cmp ecx, edx
jbe case.0x18005958c.14
mov rdi, qword [rsp + 0x38]
lea edx, [rcx - 0xd9]
mov ebp, dword [rsp + 0x80]
mov r12d, dword [rsp + 0x80]
mov r14d, dword [rsp + 0x80]
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x30], edx
lea r9, [0x180000000]
cmp edx, 0x11
ja case.default.0x18005958c
mov ecx, dword [r9 + rdx*4 + 0x5983c]
add rcx, r9
jmp rcx
test r8, r8
je 0x180059783
mov r9d, 0x148
mov r8, r10
mov rdx, r15
xor ecx, ecx
call fcn.180025330
test al, al
je 0x1800595d5
mov r8, qword [rsp + 0x88]
mov r9d, 0x3d
xor edx, edx
mov rcx, r15
call fcn.180056330
test al, al
je 0x1800595d5
mov edx, dword [rsp + 0x30]
mov bl, 1
jmp case.0x18005958c.7
mov edx, dword [rsp + 0x30]
xor bl, bl
jmp case.0x18005958c.7
mov rdi, r10
jmp case.0x18005958c.7
test ebp, ebp
je case.0x18005958c.7
mov esi, 0x11
mov eax, esi
sub eax, 0x11
je 0x180059633
sub eax, 0x6a
je 0x180059622
cmp eax, 0x6a
jne 0x180059665
sub r12d, r14d
mov qword [rsp + 0x20], r15
lea rcx, [r15 + 0x18]
xor r9d, r9d
xor edx, edx
lea r8d, [rax - 0xe]
call fcn.180008a20
jmp 0x18005965d
lea eax, [r14 + rbp]
cmp eax, 0x40
jl case.0x18005958c.14
movsxd rax, r14d
add rdi, rax
jmp 0x180059665
mov r14d, dword [r8]
mov ecx, 0x40
sub ecx, ebp
mov rdx, rdi
lea eax, [r14 + rbp]
cmp eax, 0x40
movsxd rax, ebp
cmova r14d, ecx
lea rcx, [r15 + 0x18]
add rcx, rax
movsxd r8, r14d
call fcn.18006fd90
mov r8, qword [rsp + 0x88]
add esi, 0x6a
cmp esi, 0x14f
jb 0x1800595f5
mov edx, dword [rsp + 0x30]
jmp case.0x18005958c.7
mov eax, dword [r8]
lea ecx, [rax*8]
mov dword [rsp + 0x38], ecx
test eax, eax
jne case.0x18005958c.7
movzx eax, bl
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, dword [rsp + 0x38]
add dword [r15], ecx
mov eax, dword [rsp + 0x80]
cmp dword [r15], ecx
jae case.default.0x18005958c
inc dword [r15 + 4]
jmp case.default.0x18005958c
test r10, r10
je 0x1800597c0
jmp case.0x18005958c.7
mov eax, dword [r8]
shr eax, 0x1d
add dword [r15 + 4], eax
jmp case.0x18005958c.7
cmp r12d, 0x40
jl 0x180059724
mov esi, r12d
shr rsi, 6
mov eax, esi
neg eax
shl eax, 6
add r12d, eax
nop dword [rax + rax]
xor r9d, r9d
mov qword [rsp + 0x20], r15
xor edx, edx
mov rcx, rdi
lea r8d, [r9 + 0x5c]
call fcn.180008a20
add rdi, 0x40
sub rsi, 1
jne 0x180059700
mov edx, dword [rsp + 0x30]
test r12d, r12d
je case.0x18005958c.7
movsxd r8, r12d
lea rcx, [r15 + 0x18]
mov rdx, rdi
call fcn.18006fd90
mov edx, dword [rsp + 0x30]
jmp case.0x18005958c.7
test r15, r15
je 0x180059800
jmp case.0x18005958c.7
mov ebp, dword [r15]
mov r12d, dword [r8]
shr ebp, 3
and ebp, 0x3f
mov eax, dword [rsp + 0x80]
dec edx
dec r13d
mov dword [rsp + 0x30], edx
cmp r13d, eax
jbe case.0x18005958c.14
mov r8, qword [rsp + 0x88]
mov r10, qword [rsp + 0x98]
jmp 0x180059571
mov ecx, 2
call fcn.180079a6c
mov rcx, rax
lea r8, [0x180096847]
lea rax, [0x180098c08]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rdx, str.could_not_open___s_for_writing___s_
mov qword [rsp + 0x20], r8
call fcn.18006bd20
call fcn.180075408
int3
mov ecx, 2
call fcn.180079a6c
mov rcx, rax
lea r8, [0x180096847]
lea rax, str.bson
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rdx, str.ExtendSelectionRightKeyDisplayString
mov qword [rsp + 0x20], r8
call fcn.18006bd20
call fcn.180075408
int3
mov ecx, 2
call fcn.180079a6c
mov rcx, rax
lea r8, [0x180096847]
lea rax, str.iter
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rdx, str.DX11Renderer:_Releasing_DXGI_Adapter
mov qword [rsp + 0x20], r8
call fcn.18006bd20
call fcn.180075408
int3