Function at 0x40af10
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea r12, [0x0041e097]
xor esi, esi
lea rdi, str.From__p_to__p_s_n
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x00423ed0]
lea rcx, str.GC_Dump_collection__lu_n
lea rbp, str.__temporary_
mov ebx, eax
call sym.GC_printf
sub ebx, dword [0x0044e47c]
lea rcx, str.Time_since_GC_init:__lu_ms_n
mov edx, ebx
call sym.GC_printf
lea rcx, str._nStatic_roots:_n
call sym.GC_printf
mov r9d, dword [0x00424060]
lea rbx, [0x0043c2d0]
test r9d, r9d
jle 0x40afbe
nop
nop word cs:[rax + rax]
mov r8d, dword [rbx + 0x10]
test r8d, r8d
je 0x40b6b0
mov r8, qword [rbx + 8]
mov r9, rbp
mov rcx, rdi
add esi, 1
mov rdx, qword [rbx]
add rbx, 0x18
call sym.GC_printf
cmp dword [0x00424060], esi
jg 0x40af90
mov edx, dword [0x00423ec8]
lea rcx, str.GC_root_size__lu_n
call sym.GC_printf
mov edx, dword [0x00424060]
test edx, edx
jle 0x40b6f0
lea rax, [0x0043c2d0]
sub edx, 1
lea rcx, [rdx + rdx*2]
lea rdx, [rax + 0x18]
lea r8, [rdx + rcx*8]
xor edx, edx
nop word cs:[rax + rax]
mov rcx, qword [rax + 8]
add rax, 0x18
sub rcx, qword [rax - 0x18]
add rdx, rcx
cmp rax, r8
jne 0x40b000
cmp qword [0x00423ec8], rdx
je 0x40b029
lea rcx, str.GC_root_size_incorrect___Should_be:__lu_n
call sym.GC_err_printf
lea rcx, str._nHeap_sections:_n
xor esi, esi
call sym.GC_printf
mov edx, dword [0x00423f00]
lea rcx, str.Total_heap_size:__lu_n
lea rbx, str.Section__d_from__p_to__p__u__lu_blacklisted_n
call sym.GC_printf
xor eax, eax
cmp qword [0x00423fe8], 0
je 0x40b139
shl rax, 4
add rax, qword [0x0043a2c8]
mov r8, qword [rax]
mov r10, qword [rax + 8]
mov rbp, r8
lea r9, [r8 + r10]
cmp r8, r9
jae 0x40b6e0
mov ecx, dword [0x00423edc]
mov r13, qword [0x00423ec0]
mov r14, qword [0x00423eb8]
mov rdi, qword [0x00423eb0]
test ecx, ecx
mov r11, qword [0x00423ea8]
je 0x40b570
mov rdx, r8
xor ecx, ecx
jmp 0x40b0c5
cmp rdx, r9
jae 0x40b10d
mov rax, rdx
add rdx, 0x1000
shr rax, 0xc
and eax, 0x3ffff
mov rbp, rax
shr rbp, 6
mov r12, qword [rdi + rbp*8]
test r12, r12
jne 0x40b550
mov rbp, qword [r11 + rbp*8]
and eax, 0x3f
test rbp, rbp
je 0x40b0c0
bt rbp, rax
jae 0x40b0c0
nop
test rdx, rdx
je 0x40b0c5
add ecx, 1
cmp rdx, r9
jb 0x40b0c5
mov rax, r10
mov dword [rsp + 0x20], ecx
mov edx, esi
mov rcx, rbx
shr rax, 0xc
mov dword [rsp + 0x28], eax
call sym.GC_printf
lea eax, [rsi + 1]
cmp rax, qword [0x00423fe8]
mov rsi, rax
jb 0x40b060
lea rcx, str._nFree_blocks:_n
xor ebx, ebx
call sym.GC_printf
lea r13, [0x00423cc0]
lea r12, [0x00423ac0]
lea rbp, [0x00423f00]
lea rdi, str.partially
nop dword [rax]
nop word cs:[rax + rax]
mov r15, qword [r13 + rbx*8]
test r15, r15
je 0x40b2bb
mov r8d, dword [r12 + rbx*8]
lea rcx, str.Free_list__u__total_size__lu_:_n
mov edx, ebx
lea r14, str.start
call sym.GC_printf
nop word [rax + rax]
mov rcx, r15
shr rcx, 0x16
mov rax, rcx
and eax, 0x7ff
mov rax, qword [rbp + rax*8 + 0x263d0]
cmp rcx, qword [rax + 0x2010]
je 0x40b660
mov rdx, qword [0x00423fb8]
jmp 0x40b1e4
mov rax, qword [rax + 0x2018]
cmp rcx, qword [rax + 0x2010]
je 0x40b660
cmp rax, rdx
jne 0x40b1d0
mov rax, r15
shr rax, 0xc
mov rcx, rax
and eax, 0x3ffff
and ecx, 0x3ff
mov rsi, qword [rdx + rcx*8]
mov rcx, rax
mov edx, dword [0x00423edc]
shr rcx, 6
test edx, edx
jne 0x40b242
mov r8, qword [0x00423ec0]
mov edx, eax
and edx, 0x3f
mov r8, qword [r8 + rcx*8]
bt r8, rdx
jb 0x40b679
mov r8, qword [0x00423eb8]
mov r8, qword [r8 + rcx*8]
bt r8, rdx
jb 0x40b679
mov rdx, qword [0x00423eb0]
mov rdx, qword [rdx + rcx*8]
test rdx, rdx
jne 0x40b670
mov rdx, qword [0x00423ea8]
mov rdx, qword [rdx + rcx*8]
test rdx, rdx
je 0x40b273
and eax, 0x3f
bt rdx, rax
jb 0x40b679
mov r8, qword [rsi + 0x20]
mov rdx, r8
mov rcx, r15
mov qword [rsp + 0x38], r8
call sym.GC_is_black_listed
mov r8, qword [rsp + 0x38]
lea r9, [0x0041e567]
test rax, rax
cmovne r9, rdi
nop word [rax + rax]
mov rdx, r15
lea rcx, str._t_p_size__lu__s_black_listed_n
call sym.GC_printf
mov r15, qword [rsi]
test r15, r15
jne 0x40b1a0
add rbx, 1
cmp rbx, 0x3d
jne 0x40b170
mov edx, dword [0x00423f18]
lea rcx, str.GC_large_free_bytes:__lu_n
call sym.GC_printf
mov r9, qword [0x00423fb8]
xor edx, edx
lea r8, [0x00423cc0]
lea rbx, [r8 + 0x1e8]
lea r11, [0x00423f00]
nop dword [rax]
mov rax, qword [r8]
test rax, rax
je 0x40b36e
nop dword [rax + rax]
mov r10, rax
shr r10, 0x16
mov rcx, r10
and ecx, 0x7ff
mov rcx, qword [r11 + rcx*8 + 0x263d0]
cmp r10, qword [rcx + 0x2010]
je 0x40b355
cmp rcx, r9
jne 0x40b345
jmp 0x40b650
cmp rcx, r9
je 0x40b355
mov rcx, qword [rcx + 0x2018]
cmp r10, qword [rcx + 0x2010]
jne 0x40b340
shr rax, 0xc
and eax, 0x3ff
mov rax, qword [rcx + rax*8]
add rdx, qword [rax + 0x20]
mov rax, qword [rax]
test rax, rax
jne 0x40b310
add r8, 8
cmp rbx, r8
jne 0x40b300
cmp qword [0x00423f18], rdx
je 0x40b38c
lea rcx, str.GC_large_free_bytes_INCONSISTENT___Should_be:__lu_n
call sym.GC_err_printf
lea rcx, str._nBlocks_in_use:_n
call sym.GC_printf
lea rcx, str.kind_0ptrfree_1normal_2unc.__size_in_bytes__marks_set_objs_n
call sym.GC_printf
mov r13, qword [0x00423f68]
test r13, r13
je 0x40b700
lea r12, [0x00423f00]
xor edi, edi
xor esi, esi
nop
mov ebx, 0x3ff
mov ebp, 0x1000
nop word [rax + rax]
mov rax, qword [r13 + rbx*8]
cmp rax, 0xfff
jbe 0x40b630
test byte [rax + 0x19], 4
jne 0x40b50b
mov rax, qword [r13 + 0x2010]
shl rax, 0xa
add rax, rbx
mov rcx, rax
shl rcx, 0xc
shr rcx, 0x16
mov rdx, rcx
and edx, 0x7ff
mov rdx, qword [r12 + rdx*8 + 0x263d0]
cmp qword [rdx + 0x2010], rcx
je 0x40b445
mov r8, qword [0x00423fb8]
jmp 0x40b440
mov rdx, qword [rdx + 0x2018]
cmp rcx, qword [rdx + 0x2010]
je 0x40b445
cmp r8, rdx
jne 0x40b430
and eax, 0x3ff
xor r9d, r9d
mov rcx, qword [rdx + rax*8]
xor edx, edx
mov r14, qword [rcx + 0x20]
mov rax, qword [rcx + rdx*8 + 0x40]
test rax, rax
je 0x40b482
xor r8d, r8d
nop
nop word cs:[rax + rax]
mov r10, rax
and r10d, 1
add r8d, r10d
shr rax, 1
jne 0x40b470
add r9d, r8d
add rdx, 1
cmp rdx, 4
jne 0x40b457
mov rax, qword [rcx + 0x60]
test rax, rax
je 0x40b4b2
xor edx, edx
nop word [rax + rax]
mov r8, rax
and r8d, 1
add edx, r8d
shr rax, 1
jne 0x40b4a0
add r9d, edx
cmp r14, 0x1000
mov eax, 1
ja 0x40b4c8
mov rax, rbp
xor edx, edx
div r14
mov r8, qword [rcx + 0x38]
movzx edx, byte [rcx + 0x18]
mov ecx, r9d
cmp r8, rcx
je 0x40b610
mov dword [rsp + 0x20], r9d
lea rcx, str._u__u__u__u__u_n
mov r9d, r8d
mov r8d, r14d
mov dword [rsp + 0x28], eax
call sym.GC_printf
lea rax, [r14 + 0xfff]
add rsi, 1
and rax, 0xfffffffffffff000
add rdi, rax
sub rbx, 1
test rbx, rbx
jns 0x40b3d0
mov r13, qword [r13 + 0x2000]
test r13, r13
jne 0x40b3c0
mov r8d, edi
mov edx, esi
lea rcx, str.blocks__lu__bytes__lu_n
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.GC_printf
and eax, 0x3f
bt r12, rax
jb 0x40b100
mov rbp, qword [r11 + rbp*8]
bt rbp, rax
jae 0x40b0c0
jmp 0x40b100
lea r12, [r8 + 0x1000]
xor ecx, ecx
jmp 0x40b597
add rbp, 0x1000
add r12, 0x1000
cmp r9, rbp
jbe 0x40b10d
mov rdx, rbp
shr rdx, 0xc
and edx, 0x3ffff
mov rax, rdx
and edx, 0x3f
shr rax, 6
mov r15, qword [r13 + rax*8]
bt r15, rdx
jb 0x40b5e0
mov r15, qword [r14 + rax*8]
bt r15, rdx
jb 0x40b5e0
mov r15, qword [rdi + rax*8]
test r15, r15
jne 0x40b5f0
mov rax, qword [r11 + rax*8]
test rax, rax
je 0x40b580
bt rax, rdx
jae 0x40b580
nop dword [rax + rax]
cmp r12, 1
sbb ecx, 0xffffffff
jmp 0x40b580
bt r15, rdx
jb 0x40b5e0
mov rax, qword [r11 + rax*8]
bt rax, rdx
jae 0x40b580
jmp 0x40b5e0
mov dword [rsp + 0x20], eax
lea rcx, str._u__u__u__u_n
mov r8d, r14d
call sym.GC_printf
jmp 0x40b4f7
lea rdx, [rbx - 1]
sub rbx, rax
test rax, rax
cmove rbx, rdx
jmp 0x40b50f
mov rcx, r9
jmp 0x40b355
mov rdx, rax
jmp 0x40b1e9
and eax, 0x3f
bt rdx, rax
jae 0x40b6a0
lea rax, [r15 + 0x1000]
mov r8, qword [rsi + 0x20]
test rax, rax
je 0x40b277
mov r9, r14
jmp 0x40b2a0
mov rdx, qword [0x00423ea8]
mov rdx, qword [rdx + rcx*8]
jmp 0x40b269
mov r8, qword [rbx + 8]
mov r9, r12
mov rcx, rdi
add esi, 1
mov rdx, qword [rbx]
add rbx, 0x18
call sym.GC_printf
cmp esi, dword [0x00424060]
jl 0x40af90
jmp 0x40afbe
xor ecx, ecx
jmp 0x40b10d
xor edx, edx
jmp 0x40b014
xor edx, edx
xor r8d, r8d
jmp 0x40b52d