Function at 0x44dab0
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
mov rax, qword [rcx + 0x450]
mov rax, qword [rax + 0x68]
mov rbx, rcx
mov r12, rdx
test rax, rax
je 0x44e380
mov ecx, 0x20
call rax
mov r15, rax
mov eax, dword [rbx + 0x30]
mov qword [r15], 0
mov dword [r15 + 0x10], eax
xor eax, eax
mov word [r15 + 0x18], ax
cmp byte [rbx + 0x48f], 0
mov dword [r15 + 0x14], 0
sete al
lea edx, [rax*8]
movzx eax, byte [r15 + 0x1c]
and eax, 0xffffffd4
or eax, edx
mov rdx, qword [rbx]
mov byte [r15 + 0x1c], al
xor eax, eax
test rdx, rdx
je 0x44db31
cmp byte [rdx + 0x70], 0
setne al
lea edx, [rax*4]
movzx eax, byte [r15 + 0x1c]
and eax, 0xfffffffb
or eax, edx
mov byte [r15 + 0x1c], al
cmp byte [rbx + 0x498], 0
je 0x44dc34
mov rdx, r15
mov rcx, rbx
call fcn.00451650
movzx edx, word [r15 + 0x18]
mov edi, eax
lea eax, [rdx - 1]
test edx, edx
je 0x44db9d
mov r8, qword [rbx + 0x1f8]
shl rax, 4
add rax, r8
jmp 0x44db83
mov rax, rdx
mov rdx, qword [rax]
and word [rdx + 0x18], 0xefff
cmp r8, rax
mov rcx, qword [rax + 8]
mov qword [rdx + 0x20], rcx
lea rdx, [rax - 0x10]
jne 0x44db80
test dil, dil
je 0x44dfb6
movzx eax, byte [r12 + 0x18]
movzx ecx, word [r12 + 0x18]
and eax, 0x3f
mov edx, ecx
shr dx, 6
cmp al, 1
je 0x44de01
test al, al
jne 0x44dde1
movzx eax, byte [r12 + 0x18]
mov qword [r12 + 0x20], r15
mov ecx, 7
mov r8, qword [r12]
lea rdi, str.__STDC_
and eax, 0xffffffc0
or eax, 1
mov rsi, r8
mov byte [r12 + 0x18], al
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
je 0x44dd80
and dx, 0x2ff
mov eax, edx
movzx edx, word [r12 + 0x18]
shl eax, 6
and edx, 0x3f
or edx, eax
mov eax, 1
mov word [r12 + 0x18], dx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call fcn.00447630
mov rsi, rax
movzx eax, byte [rax + 4]
cmp al, 0x14
je 0x44e230
cmp al, 0x16
je 0x44dc83
test byte [rsi + 8], 1
jne 0x44dc83
cmp byte [rbx + 0x490], 0
je 0x44e3fc
cmp byte [rbx + 0x470], 0
je 0x44e48b
lea r8, str.ISO_C11_requires_whitespace_after_the_macro_name
mov edx, 2
mov rcx, rbx
call fcn.0043bba0
test byte [r15 + 0x1c], 1
je 0x44e1e0
mov rdx, r15
mov rcx, rbx
call fcn.0044a4a0
movzx ebp, byte [r15 + 0x1c]
xor esi, esi
xor r14d, r14d
xor r13d, r13d
mov dword [rsp + 0x3c], 0
xor edi, edi
and ebp, 2
mov ecx, dword [r15 + 0x14]
movzx edx, byte [rax + 4]
cmp ecx, 1
jbe 0x44dcca
cmp byte [rax - 0x1c], 0x25
je 0x44e050
cmp dl, 0x16
je 0x44e295
cmp dl, 0x26
jne 0x44dfc0
cmp ecx, 1
je 0x44e392
movzx r8d, word [rax - 0x18]
sub ecx, 1
test r8b, 8
je 0x44e014
or byte [r15 + 0x1c], 0x20
add r13d, 1
mov dword [rax + 0x10], ecx
test bpl, bpl
mov edi, 1
je 0x44dd70
cmp esi, 1
je 0x44e120
cmp dl, 0x26
sete dil
cmp esi, 1
jle 0x44dd70
cmp esi, 2
jne 0x44dd30
test dil, dil
jne 0x44df80
cmp esi, 2
je 0x44e160
cmp dl, 0x26
je 0x44e1b5
cmp dl, 0x14
je 0x44e16e
cmp dl, 0x15
jne 0x44e001
sub esi, 1
cmp esi, 2
jne 0x44e1d0
test r14b, r14b
mov edi, r14d
jne 0x44df80
xor esi, esi
nop
mov rdx, r15
mov rcx, rbx
call fcn.0044a4a0
jmp 0x44dcb3
lea rdi, str.__STDC_FORMAT_MACROS
mov ecx, 0x15
mov rsi, r8
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
je 0x44dc03
lea rdi, str.__STDC_LIMIT_MACROS
mov ecx, 0x14
mov rsi, r8
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
je 0x44dc03
lea rdi, str.__STDC_CONSTANT_MACROS
mov ecx, 0x17
mov rsi, r8
repe cmpsb byte [rsi], byte [rdi]
mov ecx, edx
seta al
sbb al, 0
or ecx, 0x10
test al, al
cmovne edx, ecx
jmp 0x44dc03
movzx eax, word [r12 + 0x18]
and dx, 0x35b
mov ecx, edx
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov word [r12 + 0x18], ax
jmp 0x44dbcb
cmp byte [rbx + 0x48f], 0
jne 0x44e270
test dl, 0x10
jne 0x44dee0
test dl, 4
jne 0x44e3b4
test dh, 1
jne 0x44e3ee
mov rsi, qword [r12 + 0x20]
movzx eax, word [rsi + 0x18]
cmp ax, word [r15 + 0x18]
jne 0x44dee0
movzx ecx, byte [rsi + 0x1c]
xor cl, byte [r15 + 0x1c]
and ecx, 3
jne 0x44dee0
test eax, eax
je 0x44de84
mov r9, qword [rsi]
mov r8, qword [r15]
mov rdi, qword [r9]
cmp qword [r8], rdi
jne 0x44dee0
lea r11d, [rax - 1]
xor eax, eax
jmp 0x44de7f
mov rcx, qword [r9 + rax*8 + 8]
add rax, 1
cmp rcx, qword [r8 + rax*8]
jne 0x44dee0
cmp r11, rax
jne 0x44de70
cmp byte [rbx + 0x498], 0
jne 0x44e66e
mov eax, dword [rsi + 0x14]
cmp eax, dword [r15 + 0x14]
jne 0x44dee0
xor edi, edi
test eax, eax
jne 0x44deb1
jmp 0x44e3ee
add edi, 1
cmp dword [rsi + 0x14], edi
jbe 0x44df65
mov rdx, qword [r15 + 8]
mov eax, edi
shl rax, 5
add rdx, rax
add rax, qword [rsi + 8]
mov rcx, rax
call fcn.004444c0
test eax, eax
jne 0x44dea5
movzx edx, word [r12 + 0x18]
shr dx, 6
nop dword [rax + rax]
and edx, 0x14
mov eax, 0
mov r8d, dword [rbx + 0x30]
mov rcx, rbx
cmp dx, 4
mov edx, 0xb
cmovne edx, eax
mov rax, qword [r12]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rax, str.__s__redefined
mov qword [rsp + 0x20], rax
call fcn.0043bd00
test al, al
movzx eax, byte [r12 + 0x18]
je 0x44df6b
movzx edx, word [r12 + 0x18]
and eax, 0x3f
shr dx, 6
cmp al, 1
jne 0x44dbc3
test dl, 4
jne 0x44dde1
mov rax, qword [r12 + 0x20]
xor r9d, r9d
mov edx, 5
mov rcx, rbx
mov r8d, dword [rax + 0x10]
lea rax, str.this_is_the_location_of_the_previous_definition
mov qword [rsp + 0x20], rax
call fcn.0043bc80
movzx eax, byte [r12 + 0x18]
movzx edx, word [r12 + 0x18]
and eax, 0x3f
shr dx, 6
jmp 0x44dbc3
mov r8d, dword [rax]
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
mov edx, 3
mov rcx, rbx
call fcn.0043bda0
nop word [rax + rax]
mov byte [rbx + 0x16], 0
movzx edx, word [r15 + 0x18]
xor edi, edi
lea eax, [rdx - 1]
test edx, edx
jne 0x44db6c
xor eax, eax
jmp 0x44dc23
test bpl, bpl
je 0x44e140
cmp dl, 0x35
jne 0x44e0fb
mov rdi, qword [rbx + 0x510]
cmp qword [rax + 0x10], rdi
je 0x44e190
cmp esi, 1
je 0x44e120
mov edi, 0
jle 0x44dd70
cmp esi, 2
jne 0x44e001
mov esi, 3
mov rdx, r15
mov rcx, rbx
xor r14d, r14d
call fcn.0044a4a0
jmp 0x44dcb3
mov dword [r15 + 0x14], ecx
movzx ecx, word [rax + 8]
mov r9d, r8d
or r8w, 0x108
or r9d, 8
test cl, 2
cmove r8d, r9d
and ecx, 1
mov word [rax - 0x18], r8w
je 0x44dd03
or word [rax - 0x18], 0x200
jmp 0x44dd03
test byte [r15 + 0x1c], 1
je 0x44dcca
cmp dl, 0x50
je 0x44e090
cmp dword [rbx + 0x46c], 0x13
je 0x44dcca
lea r8, str._is_not_followed_by_a_macro_parameter
mov edx, 3
mov rcx, rbx
call fcn.0043bba0
jmp 0x44dfa0
movzx r8d, word [rax + 8]
test r8b, 1
je 0x44e0a6
or r8w, 0x200
mov word [rax + 8], r8w
movzx r9d, word [rax - 0x18]
mov r11d, r8d
or r11w, 0x100
test r9b, 2
cmovne r8d, r11d
and r9d, 1
sub ecx, 1
and r8d, 0xfffffffe
or r8d, 4
or r8d, r9d
test bpl, bpl
mov word [rax + 8], r8w
mov r8, qword [rax]
mov qword [rax - 0x20], r8
mov r8, qword [rax + 8]
mov qword [rax - 0x18], r8
mov r8, qword [rax + 0x10]
mov qword [rax - 0x10], r8
mov r8, qword [rax + 0x18]
mov qword [rax - 8], r8
mov dword [r15 + 0x14], ecx
je 0x44e140
cmp esi, 1
jne 0x44dd16
cmp dl, 0x14
jne 0x44e120
mov rdx, r15
mov rcx, rbx
xor edi, edi
mov esi, 2
call fcn.0044a4a0
jmp 0x44dcb3
mov r8d, dword [rsp + 0x3c]
lea r9, str.__VA_OPT___must_be_followed_by_an_open_parenthesis
mov edx, 3
mov rcx, rbx
call fcn.0043bda0
jmp 0x44dfa0
cmp dl, 0x26
mov rcx, rbx
mov rdx, r15
sete dil
call fcn.0044a4a0
jmp 0x44dcb3
cmp dl, 0x14
mov esi, 3
jne 0x44dd4b
mov rdx, r15
mov rcx, rbx
add esi, 1
xor edi, edi
xor r14d, r14d
call fcn.0044a4a0
jmp 0x44dcb3
mov r8d, dword [rax]
test esi, esi
mov dword [rsp + 0x3c], r8d
je 0x44e210
lea r9, str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov edx, 3
mov rcx, rbx
call fcn.0043bda0
jmp 0x44dfa0
mov rdx, r15
mov rcx, rbx
mov edi, 1
mov r14d, 1
call fcn.0044a4a0
jmp 0x44dcb3
xor edi, edi
jmp 0x44e001
lea rdx, [r15 + 0x14]
mov rcx, rbx
call fcn.0044a430
mov rdx, qword [rsi]
mov qword [rax], rdx
mov rdx, qword [rsi + 8]
mov qword [rax + 8], rdx
mov rdx, qword [rsi + 0x10]
mov qword [rax + 0x10], rdx
mov rdx, qword [rsi + 0x18]
mov qword [rax + 0x18], rdx
jmp 0x44dc99
mov rdx, r15
mov rcx, rbx
xor edi, edi
mov esi, 1
call fcn.0044a4a0
jmp 0x44dcb3
test byte [rsi + 8], 1
jne 0x44dc83
lea rdi, [0x004fc3f0]
xor ebp, ebp
mov rcx, rbx
call fcn.00447630
movzx edx, byte [rax + 4]
lea ecx, [rdx - 0x13]
cmp cl, 0x22
ja case.0x44e265.1
movzx ecx, cl
movsxd rcx, dword [rdi + rcx*4]
add rcx, rdi
jmp rcx
test dl, 4
jne 0x44e3ab
mov rdx, r12
mov rcx, rbx
call fcn.0044a6c0
movzx ecx, word [r12 + 0x18]
mov edx, ecx
shr dx, 6
jmp 0x44de0e
test dil, dil
jne 0x44e392
test bpl, bpl
je 0x44e451
test esi, esi
jne 0x44e4a4
mov r8, qword [rbx + 0x38]
mov rax, qword [r8 + 0x10]
and byte [r15 + 0x1c], 0xef
sub ecx, 1
mov dword [r15 + 0x14], ecx
mov qword [r15 + 8], rax
jne 0x44e472
mov rdx, qword [rbx + 0x450]
shl rcx, 5
mov rdx, qword [rdx + 0x68]
test rdx, rdx
je 0x44e64e
call rdx
test r13d, r13d
mov r8d, dword [r15 + 0x14]
mov r9, rax
je 0x44e4bf
mov rax, r8
sub r8, r13
shl r8, 5
add r8, r9
test eax, eax
je 0x44e4d2
mov rcx, r9
xor edx, edx
mov rsi, qword [r15 + 8]
jmp 0x44e34c
mov qword [rcx], r11
mov r11, qword [rax + 8]
add rcx, 0x20
mov qword [rcx - 0x18], r11
mov r11, qword [rax + 0x10]
mov qword [rcx - 0x10], r11
mov rax, qword [rax + 0x18]
mov qword [rcx - 8], rax
add edx, 1
cmp dword [r15 + 0x14], edx
jbe 0x44e4d2
mov eax, edx
shl rax, 5
add rax, rsi
cmp byte [rax + 4], 0x26
mov r11, qword [rax]
jne 0x44e320
mov qword [r8], r11
mov r11, qword [rax + 8]
add r8, 0x20
mov qword [r8 - 0x18], r11
mov r11, qword [rax + 0x10]
mov qword [r8 - 0x10], r11
mov rax, qword [rax + 0x18]
mov qword [r8 - 8], rax
jmp 0x44e33f
mov edx, 0x20
call fcn.00447890
mov r15, rax
jmp 0x44dae4
lea r8, str._cannot_appear_at_either_end_of_a_macro_expansion
mov edx, 3
mov rcx, rbx
call fcn.0043bba0
jmp 0x44dfa0
test dl, 0x10
jne 0x44dee0
mov rax, qword [rbx + 0x428]
test rax, rax
je 0x44e3d6
mov rdx, r12
mov rcx, rbx
call rax
test al, al
jne 0x44e47c
movzx ecx, word [r12 + 0x18]
cmp byte [rbx + 0x487], 0
setne al
shr cx, 6
test al, al
mov edx, ecx
jne 0x44dee0
movzx eax, byte [r12 + 0x18]
and eax, 0x3f
jmp 0x44dbc3
cmp al, 0x36
je 0x44e664
jbe 0x44e446
cmp al, 0x3d
jne 0x44e429
mov rax, qword [rsi + 0x18]
lea rcx, str._______._:______
movzx edx, byte [rax]
call sub.msvcrt.dll_strchr
xor edx, edx
test rax, rax
sete dl
add edx, edx
jmp 0x44e432
xor edx, edx
cmp al, 0x43
sete dl
add edx, edx
lea r8, str.missing_whitespace_after_the_macro_name
mov rcx, rbx
call fcn.0043bba0
jmp 0x44dc83
xor edx, edx
cmp al, 0x34
sete dl
add edx, edx
jmp 0x44e432
test esi, esi
je 0x44e2af
mov byte [rbx + 0x16], 0
movzx eax, word [r15 + 0x18]
test eax, eax
je 0x44dfb6
sub eax, 1
jmp 0x44db6c
and word [rax + 8], 0xfffe
jmp 0x44e2cd
movzx edx, word [r12 + 0x18]
shr dx, 6
jmp 0x44de20
lea r8, str.ISO_C99_requires_whitespace_after_the_macro_name
mov edx, 2
mov rcx, rbx
call fcn.0043bba0
jmp 0x44dc83
mov r8d, dword [rsp + 0x3c]
lea r9, str.unterminated___VA_OPT__
mov edx, 3
mov rcx, rbx
call fcn.0043bda0
jmp 0x44e459
mov rdx, qword [r15 + 8]
shl r8, 5
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov r9, rax
mov qword [r15 + 8], r9
mov byte [rbx + 0x16], 0
movzx edx, word [r15 + 0x18]
mov edi, 1
lea eax, [rdx - 1]
test edx, edx
jne 0x44db6c
jmp 0x44dba6
lea r8, str.missing___in_macro_parameter_list
mov edx, 3
mov rcx, rbx
call fcn.0043bba0
mov rax, qword [rbx + 0x38]
mov rax, qword [rax + 0x10]
mov qword [r15], rax
jmp 0x44dfa0
test ebp, ebp
je 0x44e539
xor ebp, ebp
jmp 0x44e243
test ebp, ebp
movzx eax, word [r15 + 0x18]
jne 0x44e5ca
test ax, ax
je 0x44e5ca
lea r8, str.parameter_name_missing
mov edx, 3
mov rcx, rbx
call fcn.0043bba0
jmp 0x44e508
test ebp, ebp
jne 0x44e742
mov r9, qword [rax + 0x18]
mov rdx, r15
mov rcx, rbx
mov r8, qword [rax + 0x10]
call fcn.0044d980
test al, al
jne 0x44e508
mov ebp, 1
jmp 0x44e243
or byte [r15 + 0x1c], 2
test ebp, ebp
je 0x44e684
cmp byte [rbx + 0x492], 0
je 0x44e5b8
cmp byte [rbx + 0x486], 0
je 0x44e5b8
cmp byte [rbx + 0x470], 0
je 0x44e710
lea r8, [0x004fc1b0]
mov edx, 0xa
mov rcx, rbx
call fcn.0043bc00
mov rcx, rbx
call fcn.00447630
cmp byte [rax + 4], 0x15
jne case.0x44e265.3
mov rax, qword [rbx + 0x450]
mov r9, qword [rbx + 0x38]
mov rdx, qword [rax + 0x68]
mov r8, qword [r9 + 0x10]
movzx eax, word [r15 + 0x18]
test rdx, rdx
mov qword [r15], r8
lea rcx, [rax*8]
je 0x44e65a
call rdx
movzx r8d, word [r15 + 0x18]
mov rdx, qword [r15]
mov rcx, rax
shl r8, 3
call sub.msvcrt.dll_memcpy
mov qword [r15], rax
or byte [r15 + 0x1c], 1
jmp 0x44dc83
cmp dl, 0x4f
jne 0x44e627
cmp byte [rbx + 0x474], 0
je 0x44e243
mov rcx, rbx
mov rdx, rax
call fcn.00445c30
lea r8, str.__s__may_not_appear_in_macro_parameter_list
mov edx, 3
mov rcx, rbx
mov r9, rax
call fcn.0043bba0
jmp 0x44e508
add rcx, rax
mov qword [r8 + 0x10], rcx
jmp 0x44e4d6
lea rax, [r8 + rcx]
mov qword [r9 + 0x10], rax
jmp 0x44e60b
mov edx, 2
jmp 0x44e432
mov rcx, rsi
mov rdx, r15
call fcn.004518e0
movzx ecx, word [r12 + 0x18]
jmp 0x44e3e0
mov r8, qword [rbx + 0x508]
mov rdx, r15
mov rcx, rbx
mov r9, r8
call fcn.0044d980
cmp byte [rbx + 0x490], 0
mov byte [rbx + 0x16], 1
jne 0x44e6e0
cmp byte [rbx + 0x492], 0
je 0x44e6e0
cmp byte [rbx + 0x486], 0
je 0x44e6e0
cmp byte [rbx + 0x470], 0
je 0x44e729
lea r8, str.anonymous_variadic_macros_were_introduced_in_C11
mov edx, 0xa
mov rcx, rbx
call fcn.0043bc00
jmp 0x44e5b8
cmp byte [rbx + 0x4be], 0
jle 0x44e5b8
cmp byte [rbx + 0x470], 0
jne 0x44e5b8
lea r8, str.anonymous_variadic_macros_were_introduced_in_C99
xor edx, edx
mov rcx, rbx
call fcn.0043bba0
jmp 0x44e5b8
lea r8, str.ISO_C_does_not_permit_named_variadic_macros
mov edx, 0xa
mov rcx, rbx
call fcn.0043bc00
jmp 0x44e5b8
lea r8, str.anonymous_variadic_macros_were_introduced_in_C99
mov edx, 0xa
mov rcx, rbx
call fcn.0043bc00
jmp 0x44e5b8
lea r8, str.macro_parameters_must_be_comma_separated
mov edx, 3
mov rcx, rbx
call fcn.0043bba0
jmp 0x44e508