Function at 0x43f8a0
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 0x440170
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 0x43f921
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 0x43fa24
mov rdx, r15
mov rcx, rbx
call fcn.00443440
movzx edx, word [r15 + 0x18]
mov edi, eax
lea eax, [rdx - 1]
test edx, edx
je 0x43f98d
mov r8, qword [rbx + 0x1f8]
shl rax, 4
add rax, r8
jmp 0x43f973
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 0x43f970
test dil, dil
je 0x43fda6
movzx eax, byte [r12 + 0x18]
movzx ecx, word [r12 + 0x18]
and eax, 0x3f
mov edx, ecx
shr dx, 6
cmp al, 1
je 0x43fbf1
test al, al
jne 0x43fbd1
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 0x43fb70
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.00439420
mov rsi, rax
movzx eax, byte [rax + 4]
cmp al, 0x14
je 0x440020
cmp al, 0x16
je 0x43fa73
test byte [rsi + 8], 1
jne 0x43fa73
cmp byte [rbx + 0x490], 0
je 0x4401ec
cmp byte [rbx + 0x470], 0
je 0x44027b
lea r8, str.ISO_C11_requires_whitespace_after_the_macro_name
mov edx, 2
mov rcx, rbx
call fcn.0042d990
test byte [r15 + 0x1c], 1
je 0x43ffd0
mov rdx, r15
mov rcx, rbx
call fcn.0043c290
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 0x43faba
cmp byte [rax - 0x1c], 0x25
je 0x43fe40
cmp dl, 0x16
je 0x440085
cmp dl, 0x26
jne 0x43fdb0
cmp ecx, 1
je 0x440182
movzx r8d, word [rax - 0x18]
sub ecx, 1
test r8b, 8
je 0x43fe04
or byte [r15 + 0x1c], 0x20
add r13d, 1
mov dword [rax + 0x10], ecx
test bpl, bpl
mov edi, 1
je 0x43fb60
cmp esi, 1
je 0x43ff10
cmp dl, 0x26
sete dil
cmp esi, 1
jle 0x43fb60
cmp esi, 2
jne 0x43fb20
test dil, dil
jne 0x43fd70
cmp esi, 2
je 0x43ff50
cmp dl, 0x26
je 0x43ffa5
cmp dl, 0x14
je 0x43ff5e
cmp dl, 0x15
jne 0x43fdf1
sub esi, 1
cmp esi, 2
jne 0x43ffc0
test r14b, r14b
mov edi, r14d
jne 0x43fd70
xor esi, esi
nop
mov rdx, r15
mov rcx, rbx
call fcn.0043c290
jmp 0x43faa3
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 0x43f9f3
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 0x43f9f3
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 0x43f9f3
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 0x43f9bb
cmp byte [rbx + 0x48f], 0
jne 0x440060
test dl, 0x10
jne 0x43fcd0
test dl, 4
jne 0x4401a4
test dh, 1
jne 0x4401de
mov rsi, qword [r12 + 0x20]
movzx eax, word [rsi + 0x18]
cmp ax, word [r15 + 0x18]
jne 0x43fcd0
movzx ecx, byte [rsi + 0x1c]
xor cl, byte [r15 + 0x1c]
and ecx, 3
jne 0x43fcd0
test eax, eax
je 0x43fc74
mov r9, qword [rsi]
mov r8, qword [r15]
mov rdi, qword [r9]
cmp qword [r8], rdi
jne 0x43fcd0
lea r11d, [rax - 1]
xor eax, eax
jmp 0x43fc6f
mov rcx, qword [r9 + rax*8 + 8]
add rax, 1
cmp rcx, qword [r8 + rax*8]
jne 0x43fcd0
cmp r11, rax
jne 0x43fc60
cmp byte [rbx + 0x498], 0
jne 0x44045e
mov eax, dword [rsi + 0x14]
cmp eax, dword [r15 + 0x14]
jne 0x43fcd0
xor edi, edi
test eax, eax
jne 0x43fca1
jmp 0x4401de
add edi, 1
cmp dword [rsi + 0x14], edi
jbe 0x43fd55
mov rdx, qword [r15 + 8]
mov eax, edi
shl rax, 5
add rdx, rax
add rax, qword [rsi + 8]
mov rcx, rax
call fcn.004362b0
test eax, eax
jne 0x43fc95
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.0042daf0
test al, al
movzx eax, byte [r12 + 0x18]
je 0x43fd5b
movzx edx, word [r12 + 0x18]
and eax, 0x3f
shr dx, 6
cmp al, 1
jne 0x43f9b3
test dl, 4
jne 0x43fbd1
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.0042da70
movzx eax, byte [r12 + 0x18]
movzx edx, word [r12 + 0x18]
and eax, 0x3f
shr dx, 6
jmp 0x43f9b3
mov r8d, dword [rax]
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
mov edx, 3
mov rcx, rbx
call fcn.0042db90
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 0x43f95c
xor eax, eax
jmp 0x43fa13
test bpl, bpl
je 0x43ff30
cmp dl, 0x35
jne 0x43feeb
mov rdi, qword [rbx + 0x510]
cmp qword [rax + 0x10], rdi
je 0x43ff80
cmp esi, 1
je 0x43ff10
mov edi, 0
jle 0x43fb60
cmp esi, 2
jne 0x43fdf1
mov esi, 3
mov rdx, r15
mov rcx, rbx
xor r14d, r14d
call fcn.0043c290
jmp 0x43faa3
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 0x43faf3
or word [rax - 0x18], 0x200
jmp 0x43faf3
test byte [r15 + 0x1c], 1
je 0x43faba
cmp dl, 0x50
je 0x43fe80
cmp dword [rbx + 0x46c], 0x13
je 0x43faba
lea r8, str._is_not_followed_by_a_macro_parameter
mov edx, 3
mov rcx, rbx
call fcn.0042d990
jmp 0x43fd90
movzx r8d, word [rax + 8]
test r8b, 1
je 0x43fe96
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 0x43ff30
cmp esi, 1
jne 0x43fb06
cmp dl, 0x14
jne 0x43ff10
mov rdx, r15
mov rcx, rbx
xor edi, edi
mov esi, 2
call fcn.0043c290
jmp 0x43faa3
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.0042db90
jmp 0x43fd90
cmp dl, 0x26
mov rcx, rbx
mov rdx, r15
sete dil
call fcn.0043c290
jmp 0x43faa3
cmp dl, 0x14
mov esi, 3
jne 0x43fb3b
mov rdx, r15
mov rcx, rbx
add esi, 1
xor edi, edi
xor r14d, r14d
call fcn.0043c290
jmp 0x43faa3
mov r8d, dword [rax]
test esi, esi
mov dword [rsp + 0x3c], r8d
je 0x440000
lea r9, str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov edx, 3
mov rcx, rbx
call fcn.0042db90
jmp 0x43fd90
mov rdx, r15
mov rcx, rbx
mov edi, 1
mov r14d, 1
call fcn.0043c290
jmp 0x43faa3
xor edi, edi
jmp 0x43fdf1
lea rdx, [r15 + 0x14]
mov rcx, rbx
call fcn.0043c220
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 0x43fa89
mov rdx, r15
mov rcx, rbx
xor edi, edi
mov esi, 1
call fcn.0043c290
jmp 0x43faa3
test byte [rsi + 8], 1
jne 0x43fa73
lea rdi, [0x004e5a70]
xor ebp, ebp
mov rcx, rbx
call fcn.00439420
movzx edx, byte [rax + 4]
lea ecx, [rdx - 0x13]
cmp cl, 0x22
ja case.0x440055.1
movzx ecx, cl
movsxd rcx, dword [rdi + rcx*4]
add rcx, rdi
jmp rcx
test dl, 4
jne 0x44019b
mov rdx, r12
mov rcx, rbx
call fcn.0043c4b0
movzx ecx, word [r12 + 0x18]
mov edx, ecx
shr dx, 6
jmp 0x43fbfe
test dil, dil
jne 0x440182
test bpl, bpl
je 0x440241
test esi, esi
jne 0x440294
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 0x440262
mov rdx, qword [rbx + 0x450]
shl rcx, 5
mov rdx, qword [rdx + 0x68]
test rdx, rdx
je 0x44043e
call rdx
test r13d, r13d
mov r8d, dword [r15 + 0x14]
mov r9, rax
je 0x4402af
mov rax, r8
sub r8, r13
shl r8, 5
add r8, r9
test eax, eax
je 0x4402c2
mov rcx, r9
xor edx, edx
mov rsi, qword [r15 + 8]
jmp 0x44013c
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 0x4402c2
mov eax, edx
shl rax, 5
add rax, rsi
cmp byte [rax + 4], 0x26
mov r11, qword [rax]
jne 0x440110
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 0x44012f
mov edx, 0x20
call fcn.00439680
mov r15, rax
jmp 0x43f8d4
lea r8, str._cannot_appear_at_either_end_of_a_macro_expansion
mov edx, 3
mov rcx, rbx
call fcn.0042d990
jmp 0x43fd90
test dl, 0x10
jne 0x43fcd0
mov rax, qword [rbx + 0x428]
test rax, rax
je 0x4401c6
mov rdx, r12
mov rcx, rbx
call rax
test al, al
jne 0x44026c
movzx ecx, word [r12 + 0x18]
cmp byte [rbx + 0x487], 0
setne al
shr cx, 6
test al, al
mov edx, ecx
jne 0x43fcd0
movzx eax, byte [r12 + 0x18]
and eax, 0x3f
jmp 0x43f9b3
cmp al, 0x36
je 0x440454
jbe 0x440236
cmp al, 0x3d
jne 0x440219
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 0x440222
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.0042d990
jmp 0x43fa73
xor edx, edx
cmp al, 0x34
sete dl
add edx, edx
jmp 0x440222
test esi, esi
je 0x44009f
mov byte [rbx + 0x16], 0
movzx eax, word [r15 + 0x18]
test eax, eax
je 0x43fda6
sub eax, 1
jmp 0x43f95c
and word [rax + 8], 0xfffe
jmp 0x4400bd
movzx edx, word [r12 + 0x18]
shr dx, 6
jmp 0x43fc10
lea r8, str.ISO_C99_requires_whitespace_after_the_macro_name
mov edx, 2
mov rcx, rbx
call fcn.0042d990
jmp 0x43fa73
mov r8d, dword [rsp + 0x3c]
lea r9, str.unterminated___VA_OPT__
mov edx, 3
mov rcx, rbx
call fcn.0042db90
jmp 0x440249
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 0x43f95c
jmp 0x43f996
lea r8, str.missing___in_macro_parameter_list
mov edx, 3
mov rcx, rbx
call fcn.0042d990
mov rax, qword [rbx + 0x38]
mov rax, qword [rax + 0x10]
mov qword [r15], rax
jmp 0x43fd90
test ebp, ebp
je 0x440329
xor ebp, ebp
jmp 0x440033
test ebp, ebp
movzx eax, word [r15 + 0x18]
jne 0x4403ba
test ax, ax
je 0x4403ba
lea r8, str.parameter_name_missing
mov edx, 3
mov rcx, rbx
call fcn.0042d990
jmp 0x4402f8
test ebp, ebp
jne 0x440532
mov r9, qword [rax + 0x18]
mov rdx, r15
mov rcx, rbx
mov r8, qword [rax + 0x10]
call fcn.0043f770
test al, al
jne 0x4402f8
mov ebp, 1
jmp 0x440033
or byte [r15 + 0x1c], 2
test ebp, ebp
je 0x440474
cmp byte [rbx + 0x492], 0
je 0x4403a8
cmp byte [rbx + 0x486], 0
je 0x4403a8
cmp byte [rbx + 0x470], 0
je 0x440500
lea r8, [0x004e5830]
mov edx, 0xa
mov rcx, rbx
call fcn.0042d9f0
mov rcx, rbx
call fcn.00439420
cmp byte [rax + 4], 0x15
jne case.0x440055.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 0x44044a
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 0x43fa73
cmp dl, 0x4f
jne 0x440417
cmp byte [rbx + 0x474], 0
je 0x440033
mov rcx, rbx
mov rdx, rax
call fcn.00437a20
lea r8, str.__s__may_not_appear_in_macro_parameter_list
mov edx, 3
mov rcx, rbx
mov r9, rax
call fcn.0042d990
jmp 0x4402f8
add rcx, rax
mov qword [r8 + 0x10], rcx
jmp 0x4402c6
lea rax, [r8 + rcx]
mov qword [r9 + 0x10], rax
jmp 0x4403fb
mov edx, 2
jmp 0x440222
mov rcx, rsi
mov rdx, r15
call fcn.004436d0
movzx ecx, word [r12 + 0x18]
jmp 0x4401d0
mov r8, qword [rbx + 0x508]
mov rdx, r15
mov rcx, rbx
mov r9, r8
call fcn.0043f770
cmp byte [rbx + 0x490], 0
mov byte [rbx + 0x16], 1
jne 0x4404d0
cmp byte [rbx + 0x492], 0
je 0x4404d0
cmp byte [rbx + 0x486], 0
je 0x4404d0
cmp byte [rbx + 0x470], 0
je 0x440519
lea r8, str.anonymous_variadic_macros_were_introduced_in_C11
mov edx, 0xa
mov rcx, rbx
call fcn.0042d9f0
jmp 0x4403a8
cmp byte [rbx + 0x4be], 0
jle 0x4403a8
cmp byte [rbx + 0x470], 0
jne 0x4403a8
lea r8, str.anonymous_variadic_macros_were_introduced_in_C99
xor edx, edx
mov rcx, rbx
call fcn.0042d990
jmp 0x4403a8
lea r8, str.ISO_C_does_not_permit_named_variadic_macros
mov edx, 0xa
mov rcx, rbx
call fcn.0042d9f0
jmp 0x4403a8
lea r8, str.anonymous_variadic_macros_were_introduced_in_C99
mov edx, 0xa
mov rcx, rbx
call fcn.0042d9f0
jmp 0x4403a8
lea r8, str.macro_parameters_must_be_comma_separated
mov edx, 3
mov rcx, rbx
call fcn.0042d990
jmp 0x4402f8