Function at 0x210173610
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rbx, qword [rcx]
lea rax, [rbx + 5]
mov r12, rcx
cmp qword [rcx + 8], rax
jbe 0x21017366a
mov r8d, 6
lea rdx, [0x2102b1670]
mov rcx, rbx
call sym.msys_2.0.dll_strncmp
test eax, eax
je 0x2101737ba
mov r8d, 6
lea rdx, str._:_:__
mov rcx, rbx
call sym.msys_2.0.dll_strncmp
test eax, eax
je 0x210173790
mov rcx, r12
call sym.allocset
mov rsi, rax
test rax, rax
je 0x2101736ca
mov rax, qword [r12 + 0x38]
test byte [rax + 0x20], 2
je 0x21017368c
mov dword [rsi + 0x50], 1
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
cmp rax, rdx
jb 0x2101736db
mov eax, dword [r12 + 0x10]
lea rdx, [0x21032c8a0]
nop word cs:[rax + rax]
test eax, eax
jne 0x21017389f
mov dword [r12 + 0x10], 7
mov qword [r12], rdx
mov qword [r12 + 8], rdx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx ecx, byte [rax]
cmp cl, 0x5e
je 0x2101737d9
cmp cl, 0x5d
je 0x210173f50
cmp cl, 0x2d
je 0x210173f80
mov rax, qword [r12]
lea r13, [0x21023a000]
lea rbp, [0x21032c8a0]
jmp 0x210173771
cmp cl, 0x2d
je 0x2101738b0
cmp cl, 0x5b
jne 0x210173730
cmp r8, rdx
jb 0x210173800
nop word [rax + rax]
mov rcx, r12
call sym.p_b_symbol
mov rdx, qword [r12 + 8]
mov edi, eax
mov rax, qword [r12]
cmp rax, rdx
jae 0x210173751
cmp byte [rax], 0x2d
je 0x210173b5e
mov rdx, rsi
mov r8d, edi
mov rcx, r12
call sym.CHadd
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
cmp rax, rdx
jae 0x21017369a
movzx ecx, byte [rax]
cmp cl, 0x5d
je 0x210173ba8
lea r8, [rax + 1]
cmp r8, rdx
jb 0x210173710
cmp cl, 0x2d
jne 0x210173719
jmp 0x2101738ba
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x2101737ad
xor r8d, r8d
mov edx, 0xa0000000
mov rcx, r12
call sym.doemit.part.0
mov rbx, qword [r12]
add rbx, 6
mov qword [r12], rbx
jmp 0x2101736ca
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x2101737ad
xor r8d, r8d
mov edx, 0x98000000
mov rcx, r12
call sym.doemit.part.0
mov rbx, qword [r12]
jmp 0x2101737ad
lea r8, [rax + 1]
mov qword [r12], r8
mov dword [rsi + 0x4c], 1
cmp rdx, r8
jbe 0x21017369a
movzx ecx, byte [rax + 1]
mov rax, r8
jmp 0x2101736e7
movzx ecx, byte [rax + 1]
cmp cl, 0x3a
je 0x2101738e8
cmp cl, 0x3d
jne 0x210173730
add rax, 2
mov qword [r12], rax
cmp rax, rdx
jb 0x210173842
mov r14d, dword [r12 + 0x10]
test r14d, r14d
jne 0x210173836
mov dword [r12 + 0x10], 7
mov qword [r12], rbp
mov rax, rbp
mov qword [r12 + 8], rbp
movzx eax, byte [rax]
cmp al, 0x2d
je 0x210173b3e
cmp al, 0x5d
je 0x210173b3e
mov edx, 0x3d
mov rcx, r12
call sym.p_b_coll_elem
mov rdx, rsi
mov rcx, r12
mov r8d, eax
call sym.CHadd
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
cmp rax, rdx
jb 0x210173b05
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x210173af0
mov dword [r12 + 0x10], 7
lea rdx, [0x21032c8a0]
mov qword [r12], rdx
mov qword [r12 + 8], rdx
jmp 0x2101736ca
cmp byte [rax + 1], 0x5d
je 0x210173b8e
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x210173af0
mov dword [r12 + 0x10], 0xb
lea rax, [0x21032c8a0]
mov qword [r12], rax
mov qword [r12 + 8], rax
jmp 0x2101736ca
lea rbx, [rax + 2]
mov qword [r12], rbx
cmp rbx, rdx
jb 0x210173a60
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x21017390b
mov dword [r12 + 0x10], 7
mov qword [r12], rbp
movzx eax, byte [rbp]
mov qword [r12 + 8], rbp
cmp al, 0x5d
je 0x210173924
cmp al, 0x2d
jne 0x210173ff1
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x210173936
mov dword [r12 + 0x10], 4
mov qword [r12], rbp
mov rbx, rbp
mov qword [r12 + 8], rbp
xor eax, eax
lea rcx, [rsp + 0x20]
mov r9d, eax
mov rdx, rbx
mov r10, rcx
cmp eax, 8
jae 0x210173d4e
xor r8d, r8d
test r9b, 4
je 0x210173970
mov r8d, dword [rdx]
mov dword [r10], r8d
mov r8d, 4
test r9b, 2
je 0x210173984
movzx r11d, word [rdx + r8]
mov word [r10 + r8], r11w
add r8, 2
and r9d, 1
je 0x210173993
movzx edx, byte [rdx + r8]
mov byte [r10 + r8], dl
mov byte [rsp + rax + 0x20], 0
call sym.msys_2.0.dll_wctype
mov edi, eax
test eax, eax
je 0x210173ab3
xor ebx, ebx
jmp 0x2101739bb
add ebx, 1
cmp ebx, 0x100
je 0x2101739e1
mov edx, edi
mov ecx, ebx
call sym.msys_2.0.dll_iswctype
test eax, eax
je 0x2101739b0
mov r8d, ebx
mov rdx, rsi
mov rcx, r12
add ebx, 1
call sym.CHadd
cmp ebx, 0x100
jne 0x2101739bb
mov eax, dword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
lea edx, [rax + 1]
movsxd rdx, edx
shl rdx, 2
call sym.realloc_1
test rax, rax
je 0x210173fd2
movsxd rdx, dword [rsi + 0x28]
mov qword [rsi + 0x20], rax
lea ecx, [rdx + 1]
mov dword [rsi + 0x28], ecx
mov dword [rax + rdx*4], edi
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
cmp rax, rdx
jae 0x210173fc6
lea rcx, [rax + 1]
cmp rdx, rcx
jbe 0x210173a35
cmp byte [rax], 0x3a
je 0x210173d95
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x210173af0
mov dword [r12 + 0x10], 4
lea rax, [0x21032c8a0]
mov qword [r12], rax
mov qword [r12 + 8], rax
jmp 0x2101736ca
movzx eax, byte [rax + 2]
cmp al, 0x2d
je 0x210173924
cmp al, 0x5d
je 0x210173924
cmp rbx, qword [r12 + 8]
jb 0x210173a8f
jmp 0x210173942
add rax, 1
mov qword [r12], rax
cmp rax, qword [r12 + 8]
jae 0x210173aa6
call sym.msys_2.0.dll___locale_ctype_ptr
mov r8, rax
mov rax, qword [r12]
movzx edx, byte [rax]
test byte [rdx + r8 + 1], 3
jne 0x210173a80
sub rax, rbx
cmp rax, 0xe
jbe 0x210173944
mov r15d, dword [r12 + 0x10]
test r15d, r15d
jne 0x210173ac6
mov dword [r12 + 0x10], 4
lea rdx, [0x21032c8a0]
mov qword [r12 + 8], rdx
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x210173af7
mov dword [r12 + 0x10], 7
jmp 0x21017389f
lea rdx, [0x21032c8a0]
mov qword [r12], rdx
mov qword [r12 + 8], rdx
jmp 0x2101736b0
lea rcx, [rax + 1]
cmp rdx, rcx
jbe 0x210173b17
cmp byte [rax], 0x3d
je 0x210173d7e
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x210173af0
mov dword [r12 + 0x10], 3
lea rax, [0x21032c8a0]
mov qword [r12], rax
mov qword [r12 + 8], rax
jmp 0x2101736ca
mov edi, dword [r12 + 0x10]
test edi, edi
jne 0x210173b50
mov dword [r12 + 0x10], 3
mov qword [r12], rbp
mov qword [r12 + 8], rbp
jmp 0x210173855
lea rcx, [rax + 1]
cmp rdx, rcx
ja 0x210173bd9
mov eax, dword [r12 + 0x10]
test eax, eax
jne 0x210173af0
mov dword [r12 + 0x10], 7
lea rax, [0x21032c8a0]
mov qword [r12], rax
mov qword [r12 + 8], rax
jmp 0x2101736ca
cmp rdx, rax
jbe 0x210173ba8
mov qword [r12], r8
mov rdx, rsi
mov r8d, 0x2d
mov rcx, r12
call sym.CHadd
mov rdx, qword [r12]
cmp rdx, qword [r12 + 8]
jae 0x21017369a
lea rax, [rdx + 1]
mov qword [r12], rax
cmp byte [rdx], 0x5d
mov eax, dword [r12 + 0x10]
je 0x210173da1
lea rdx, [0x21032c8a0]
jmp 0x2101736b0
cmp byte [rax + 1], 0x5d
je 0x210173751
mov qword [r12], rcx
cmp byte [rax + 1], 0x2d
je 0x210173f3d
mov rcx, r12
call sym.p_b_symbol
mov r14d, eax
cmp edi, r14d
je 0x210173751
mov rax, qword gs:[8]
mov rax, qword [rax - 0x2938]
test rax, rax
cmove rax, r13
mov rax, qword [rax + 0x170]
mov ebx, dword [rax]
test ebx, ebx
jne 0x210173ce6
cmp dil, r14b
jbe 0x210173c4e
mov r11d, dword [r12 + 0x10]
test r11d, r11d
jne 0x210173c45
mov dword [r12 + 0x10], 0xb
mov qword [r12], rbp
mov qword [r12 + 8], rbp
mov ebx, 0xff
cmp r14d, ebx
cmovbe ebx, r14d
cmp edi, ebx
ja 0x210173d76
lea r15d, [rbx + 1]
nop word cs:[rax + rax]
mov r8d, edi
mov rdx, rsi
mov rcx, r12
call sym.CHadd
mov eax, edi
add edi, 1
cmp eax, ebx
jne 0x210173c70
cmp r14d, r15d
jbe 0x210173cd8
mov eax, dword [rsi + 0x48]
mov rcx, qword [rsi + 0x40]
lea edx, [rax + 1]
movsxd rdx, edx
shl rdx, 3
call sym.realloc_1
test rax, rax
je 0x210173f9b
movsxd rcx, dword [rsi + 0x48]
mov qword [rsi + 0x40], rax
mov rdx, rcx
lea rax, [rax + rcx*8]
add edx, 1
mov dword [rax], r15d
mov dword [rax + 4], r14d
mov rax, qword [r12]
mov dword [rsi + 0x48], edx
mov rdx, qword [r12 + 8]
jmp 0x210173768
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
jmp 0x210173768
mov edx, r14d
mov ecx, edi
call sym.__collate_range_cmp
test eax, eax
jle 0x210173d10
mov r10d, dword [r12 + 0x10]
test r10d, r10d
jne 0x210173d07
mov dword [r12 + 0x10], 0xb
mov qword [r12], rbp
mov qword [r12 + 8], rbp
xor ebx, ebx
jmp 0x210173d23
add ebx, 1
cmp ebx, 0x100
je 0x210173cd8
mov edx, ebx
mov ecx, edi
call sym.__collate_range_cmp
test eax, eax
jg 0x210173d18
mov edx, r14d
mov ecx, ebx
call sym.__collate_range_cmp
test eax, eax
jg 0x210173d18
mov r8d, ebx
mov rdx, rsi
mov rcx, r12
call sym.CHadd
jmp 0x210173d18
mov r11d, eax
xor edx, edx
and r11d, 0xfffffff8
mov r8d, edx
add edx, 8
mov r10, qword [rbx + r8]
mov qword [rcx + r8], r10
cmp edx, r11d
jb 0x210173d57
lea r10, [rcx + rdx]
add rdx, rbx
jmp 0x21017395b
mov r15d, edi
jmp 0x210173c87
cmp byte [rax + 1], 0x5d
jne 0x210173b17
add rax, 2
mov qword [r12], rax
jmp 0x210173768
cmp byte [rax + 1], 0x5d
jne 0x210173a35
jmp 0x210173d88
test eax, eax
jne 0x2101736ca
mov r8d, dword [rsi + 0x4c]
test r8d, r8d
je 0x210173dc1
mov rax, qword [r12 + 0x38]
test byte [rax + 0x20], 8
je 0x210173dc1
or byte [rsi + 1], 4
mov r10d, 0xffffff7f
xor r9d, r9d
xor edx, edx
nop dword [rax]
mov eax, edx
mov ecx, edx
shr eax, 3
and ecx, 7
movzx eax, byte [rsi + rax]
sar eax, cl
and eax, 1
cmp r8d, eax
je 0x210173e08
add r9d, 1
lea eax, [rdx + 1]
cmp edx, 0xff
je 0x210173f32
mov r10d, edx
mov edx, eax
jmp 0x210173dd0
lea eax, [rdx + 1]
cmp edx, 0xff
jne 0x210173dfe
cmp r9d, 1
je 0x210173ef1
test r9d, r9d
jne 0x210173efe
cmp dword [rsi + 0x38], 1
jne 0x210173efe
mov ecx, dword [rsi + 0x48]
test ecx, ecx
jne 0x210173efe
mov edx, dword [rsi + 0x28]
test edx, edx
jne 0x210173efe
mov eax, dword [rsi + 0x50]
test eax, eax
jne 0x210173efe
mov rax, qword [rsi + 0x30]
mov r10d, dword [rax]
cmp r10d, 0xffffff7f
je 0x210173efe
test r8d, r8d
jne 0x210173efe
mov edx, r10d
mov rcx, r12
lea rdi, [rsi + 8]
call sym.ordinary
mov rax, qword [r12 + 0x38]
mov rcx, qword [rsi + 0x30]
and rdi, 0xfffffffffffffff8
mov rbp, qword [rax + 0x18]
movsxd rax, dword [rax + 0x10]
lea rdx, [rax + rax*4]
lea rbx, [rax + rdx*2]
call sym.free_1
mov rcx, qword [rsi + 0x40]
shl rbx, 3
call sym.free_1
mov rcx, qword [rsi + 0x20]
call sym.free_1
mov rcx, rsi
xor eax, eax
mov qword [rsi], 0
sub rcx, rdi
mov qword [rsi + 0x50], 0
add ecx, 0x58
shr ecx, 3
rep stosq qword [rdi], rax
lea rax, [rbp + rbx - 0x58]
cmp rsi, rax
jne 0x2101736ca
mov rax, qword [r12 + 0x38]
sub dword [rax + 0x10], 1
jmp 0x2101736ca
mov r9d, dword [rsi + 0x38]
test r9d, r9d
je 0x210173e58
mov rax, qword [r12 + 0x38]
mov edx, 0x30000000
mov rcx, r12
sub rsi, qword [rax + 0x18]
sar rsi, 3
imul r8d, esi, 0xba2e8ba3
movsxd r8, r8d
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.doemit.part.0
mov r10d, 0xff
jmp 0x210173e13
add rax, 2
mov r14d, 0x2d
mov qword [r12], rax
jmp 0x210173bfc
add rax, 1
mov r8d, 0x5d
mov rdx, rsi
mov rcx, r12
mov qword [r12], rax
call sym.CHadd
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
cmp rax, rdx
jb 0x2101736fd
jmp 0x21017369a
add rax, 1
mov r8d, 0x2d
mov rdx, rsi
mov rcx, r12
mov qword [r12], rax
call sym.CHadd
jmp 0x210173f69
cmp dword [r12 + 0x10], 0
jne 0x210173fac
mov dword [r12 + 0x10], 0xc
lea rdx, [0x21032c8a0]
mov eax, dword [r12 + 0x10]
mov qword [r12], rdx
mov qword [r12 + 8], rdx
jmp 0x2101736b0
lea rdx, [0x21032c8a0]
jmp 0x210173ad2
cmp dword [r12 + 0x10], 0
jne 0x210173fe3
mov dword [r12 + 0x10], 0xc
mov qword [r12], rbp
mov qword [r12 + 8], rbp
jmp 0x210173a11
mov rbx, rbp
jmp 0x210173942