Function at 0x44b520
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 + 0x410]
mov rbx, rcx
mov r12, rdx
mov rax, qword [rax + 0x68]
test rax, rax
je 0x44bc50
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
movzx eax, byte [r15 + 0x1c]
mov edx, eax
and edx, 0xfffffffd
mov byte [r15 + 0x1c], dl
cmp byte [rbx + 0x44f], 0
mov dword [r15 + 0x14], 0
sete dl
and eax, 0xffffffd4
shl edx, 3
or eax, edx
mov byte [r15 + 0x1c], al
mov rax, qword [rbx]
test rax, rax
je 0x44bc62
cmp byte [rax + 0x6d], 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 + 0x458], 0
je 0x44b700
mov rdx, r15
mov rcx, rbx
call fcn.0044ef30
mov ebp, eax
movzx eax, word [r15 + 0x18]
test eax, eax
lea edx, [rax - 1]
je 0x44b612
mov r8, qword [rbx + 0x1f0]
nop word [rax + rax]
mov eax, edx
sub edx, 1
shl rax, 4
add rax, r8
mov rcx, qword [rax]
and word [rcx + 0x18], 0xefff
cmp edx, 0xffffffff
mov rax, qword [rax + 8]
mov qword [rcx + 0x20], rax
jne 0x44b5f0
test bpl, bpl
je 0x44b6ea
movzx edx, byte [r12 + 0x18]
and edx, 0x3f
cmp dl, 1
je 0x44b9e0
movzx eax, word [r12 + 0x18]
shr ax, 6
test dl, dl
je 0x44b655
movzx edx, word [r12 + 0x18]
and ax, 0x35b
mov ecx, eax
shl ecx, 6
and edx, 0x3f
or edx, ecx
mov word [r12 + 0x18], dx
movzx edx, byte [r12 + 0x18]
lea rdi, str.__STDC_
mov qword [r12 + 0x20], r15
mov ecx, 7
and edx, 0xffffffc0
or edx, 1
mov byte [r12 + 0x18], dl
mov rdx, qword [r12]
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
jne 0x44b6d0
lea rdi, str.__STDC_FORMAT_MACROS
mov ecx, 0x15
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
je 0x44b6d0
lea rdi, str.__STDC_LIMIT_MACROS
mov ecx, 0x14
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
je 0x44b6d0
lea rdi, str.__STDC_CONSTANT_MACROS
mov ecx, 0x17
mov rsi, rdx
mov edx, eax
repe cmpsb byte [rsi], byte [rdi]
seta r8b
setb cl
or edx, 0x10
cmp r8b, cl
cmovne eax, edx
nop dword [rax + rax]
and ax, 0x2ff
shl eax, 6
mov edx, eax
movzx eax, word [r12 + 0x18]
and eax, 0x3f
or eax, edx
mov word [r12 + 0x18], ax
mov eax, ebp
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.00444f80
mov rsi, rax
movzx eax, byte [rax + 4]
cmp al, 0x14
je 0x44ba50
cmp al, 0x16
je 0x44b750
test byte [rsi + 6], 1
jne 0x44b750
cmp byte [rbx + 0x450], 0
je 0x44bd80
cmp byte [rbx + 0x430], 0
je 0x44bdc7
lea r8, str.ISO_C11_requires_whitespace_after_the_macro_name
mov edx, 2
mov rcx, rbx
call fcn.00438940
nop
test byte [r15 + 0x1c], 1
je 0x44b9b0
mov rdx, r15
mov rcx, rbx
call fcn.00447ed0
movzx esi, byte [r15 + 0x1c]
mov dword [rsp + 0x3c], 0
xor edi, edi
xor r14d, r14d
xor r13d, r13d
xor ebp, ebp
and esi, 2
jmp 0x44b7c0
cmp ecx, 1
je 0x44bc10
movzx r8d, word [rax - 0x12]
test r8b, 8
je 0x44b840
sub ecx, 1
or byte [r15 + 0x1c], 0x20
add r13d, 1
mov dword [rax + 8], ecx
test sil, sil
jne 0x44b804
cmp dl, 0x26
mov rcx, rbx
mov rdx, r15
sete bpl
call fcn.00447ed0
mov ecx, dword [r15 + 0x14]
cmp ecx, 1
jbe 0x44b7d3
cmp byte [rax - 0x14], 0x25
je 0x44b880
movzx edx, byte [rax + 4]
cmp dl, 0x16
je 0x44bb30
cmp dl, 0x26
je 0x44b782
test sil, sil
je 0x44b7ae
cmp dl, 0x35
jne 0x44b8c0
mov rcx, qword [rbx + 0x4d0]
cmp qword [rax + 8], rcx
je 0x44bc70
cmp edi, 1
je 0x44b8e0
cmp edi, 1
jle 0x44b7ae
cmp edi, 2
je 0x44b904
cmp dl, 0x26
je 0x44b930
cmp dl, 0x14
je 0x44b91b
cmp dl, 0x15
je 0x44bc30
xor r14d, r14d
jmp 0x44b7ae
sub ecx, 1
mov dword [r15 + 0x14], ecx
mov ecx, r8d
or ecx, 8
mov word [rax - 0x12], cx
movzx ecx, word [rax + 6]
test cl, 2
je 0x44b865
or r8w, 0x108
mov word [rax - 0x12], r8w
and ecx, 1
je 0x44b7a9
or word [rax - 0x12], 0x200
jmp 0x44b7a9
test byte [r15 + 0x1c], 1
movzx edx, byte [rax + 4]
je 0x44b7d7
cmp dl, 0x50
je 0x44b940
cmp dword [rbx + 0x42c], 0x13
je 0x44b7d7
lea r8, str._is_not_followed_by_a_macro_parameter
mov edx, 3
mov rcx, rbx
xor ebp, ebp
call fcn.00438940
jmp 0x44b8fb
cmp edi, 1
jne 0x44b80d
cmp dl, 0x14
jne 0x44b8e0
mov edi, 2
jmp 0x44b7ae
mov r8d, dword [rsp + 0x3c]
lea r9, str.__VA_OPT___must_be_followed_by_an_open_parenthesis
mov edx, 3
mov rcx, rbx
xor ebp, ebp
call fcn.00438b40
mov byte [rbx + 0x16], 0
jmp 0x44b5d7
cmp dl, 0x26
je 0x44bfed
cmp dl, 0x14
mov edi, 3
jne 0x44b82d
add edi, 1
xor r14d, r14d
jmp 0x44b7ae
mov r14d, 1
jmp 0x44b7ae
movzx r8d, word [rax + 6]
test r8b, 1
je 0x44b956
or r8w, 0x200
mov word [rax + 6], r8w
movzx r9d, word [rax - 0x12]
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 sil, sil
mov word [rax + 6], r8w
mov r8, qword [rax]
mov qword [rax - 0x18], r8
mov r8, qword [rax + 8]
mov qword [rax - 0x10], r8
mov r8, qword [rax + 0x10]
mov qword [rax - 8], r8
mov dword [r15 + 0x14], ecx
je 0x44b7ae
jmp 0x44b804
lea rdx, [r15 + 0x14]
mov rcx, rbx
call fcn.00447e60
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
jmp 0x44b766
cmp byte [rbx + 0x44f], 0
je 0x44bc93
movzx ecx, word [r12 + 0x18]
mov eax, ecx
shr ax, 6
test al, 4
je 0x44bc88
test al, 0x10
jne 0x44ba90
mov rax, qword [rbx + 0x3e8]
test rax, rax
je 0x44ba2b
mov rdx, r12
mov rcx, rbx
call rax
test al, al
jne 0x44c00c
movzx ecx, word [r12 + 0x18]
cmp byte [rbx + 0x447], 0
setne al
test al, al
jne 0x44ba87
movzx edx, byte [r12 + 0x18]
mov eax, ecx
shr ax, 6
and edx, 0x3f
jmp 0x44b637
xor ebp, ebp
test byte [rsi + 6], 1
lea rdi, [0x004db028]
jne 0x44b750
mov rcx, rbx
call fcn.00444f80
movzx edx, byte [rax + 4]
lea ecx, [rdx - 0x13]
cmp cl, 0x22
ja case.0x44ba85.1
movzx ecx, cl
movsxd rcx, dword [rdi + rcx*4]
add rcx, rdi
jmp rcx
mov eax, ecx
shr ax, 6
nop dword [rax]
and eax, 0x14
mov edx, 0
mov r8d, dword [rbx + 0x30]
cmp ax, 4
mov eax, 0xb
mov rcx, rbx
cmove 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.00438aa0
movzx edx, byte [r12 + 0x18]
and edx, 0x3f
test al, al
je 0x44b62d
movzx eax, word [r12 + 0x18]
shr ax, 6
cmp dl, 1
jne 0x44b637
test al, 4
jne 0x44b63b
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.00438a20
movzx edx, byte [r12 + 0x18]
and edx, 0x3f
jmp 0x44b62d
test bpl, bpl
jne 0x44bc10
test sil, sil
je 0x44bfc2
test edi, edi
jne 0x44bdea
mov r8, qword [rbx + 0x38]
sub ecx, 1
mov rax, qword [r8 + 0x10]
and byte [r15 + 0x1c], 0xef
test ecx, ecx
mov dword [r15 + 0x14], ecx
mov qword [r15 + 8], rax
jne 0x44bde0
mov rdx, qword [rbx + 0x410]
mov rdx, qword [rdx + 0x68]
test rdx, rdx
je 0x44bff6
lea rcx, [rcx + rcx*2]
shl rcx, 3
call rdx
test r13d, r13d
mov r9, rax
mov eax, dword [r15 + 0x14]
je 0x44bf4b
mov rdx, rax
sub rax, r13
lea rax, [rax + rax*2]
test edx, edx
lea rcx, [r9 + rax*8]
je 0x44bf62
mov rax, qword [r15 + 8]
sub edx, 1
lea rdx, [rdx + rdx*2 + 3]
lea r11, [rax + rdx*8]
mov rdx, r9
jmp 0x44bbe7
mov qword [rdx], r8
mov r8, qword [rax + 8]
add rdx, 0x18
mov qword [rdx - 0x10], r8
mov r8, qword [rax + 0x10]
mov qword [rdx - 8], r8
add rax, 0x18
cmp r11, rax
je 0x44bf62
cmp byte [rax + 4], 0x26
mov r8, qword [rax]
jne 0x44bbc3
mov qword [rcx], r8
mov r8, qword [rax + 8]
add rcx, 0x18
mov qword [rcx - 0x10], r8
mov r8, qword [rax + 0x10]
mov qword [rcx - 8], r8
jmp 0x44bbda
lea r8, str._cannot_appear_at_either_end_of_a_macro_expansion
mov edx, 3
mov rcx, rbx
xor ebp, ebp
call fcn.00438940
jmp 0x44b8fb
sub edi, 1
cmp edi, 2
jne 0x44b836
test r14b, r14b
jne 0x44bfed
xor edi, edi
jmp 0x44b7ae
mov edx, 0x20
call fcn.004451d0
mov r15, rax
jmp 0x44b554
xor eax, eax
jmp 0x44b5a8
test edi, edi
jne 0x44bfcf
mov eax, dword [rax]
mov edi, 1
mov dword [rsp + 0x3c], eax
jmp 0x44b7ae
mov rdx, r12
mov rcx, rbx
call fcn.00448130
movzx ecx, word [r12 + 0x18]
mov eax, ecx
shr ax, 6
test al, 0x10
jne 0x44ba90
test al, 4
jne 0x44ba09
test ah, 1
jne 0x44be08
mov rsi, qword [r12 + 0x20]
movzx edx, word [rsi + 0x18]
cmp dx, word [r15 + 0x18]
jne 0x44ba90
movzx ecx, byte [rsi + 0x1c]
xor cl, byte [r15 + 0x1c]
and ecx, 3
jne 0x44ba90
test edx, edx
je 0x44bd18
mov r11, qword [rsi]
mov r9, qword [r15]
lea r8d, [rdx - 1]
xor edx, edx
mov rdi, qword [r11]
cmp qword [r9], rdi
je 0x44bd13
jmp 0x44ba90
mov rcx, qword [r11 + rdx*8 + 8]
add rdx, 1
cmp rcx, qword [r9 + rdx*8]
jne 0x44ba90
cmp rdx, r8
jne 0x44bd00
cmp byte [rbx + 0x458], 0
jne 0x44c0c9
mov edx, dword [rsi + 0x14]
cmp edx, dword [r15 + 0x14]
jne 0x44ba90
xor edi, edi
test edx, edx
jne 0x44bd4c
jmp 0x44be08
add edi, 1
cmp dword [rsi + 0x14], edi
jbe 0x44bb19
mov eax, edi
lea rax, [rax + rax*2]
shl rax, 3
mov rdx, rax
add rax, qword [rsi + 8]
add rdx, qword [r15 + 8]
mov rcx, rax
call fcn.00441e10
test eax, eax
jne 0x44bd40
movzx eax, word [r12 + 0x18]
shr ax, 6
jmp 0x44ba90
cmp al, 0x36
je 0x44bfb8
jbe 0x44bfb0
cmp al, 0x3d
jne 0x44be16
mov rax, qword [rsi + 0x10]
lea rcx, str._______._:______
movzx edx, byte [rax]
call sub.msvcrt.dll_strchr
xor edx, edx
test rax, rax
sete dl
add edx, edx
lea r8, str.missing_whitespace_after_the_macro_name
mov rcx, rbx
call fcn.00438940
jmp 0x44b750
lea r8, str.ISO_C99_requires_whitespace_after_the_macro_name
mov edx, 2
mov rcx, rbx
call fcn.00438940
jmp 0x44b750
and word [rax + 6], 0xfffe
jmp 0x44bb6a
mov r8d, dword [rsp + 0x3c]
lea r9, str.unterminated___VA_OPT__
mov edx, 3
mov rcx, rbx
call fcn.00438b40
jmp 0x44b8fb
movzx edx, byte [r12 + 0x18]
and edx, 0x3f
jmp 0x44b637
cmp al, 0x43
je 0x44bfb8
xor edx, edx
jmp 0x44bdb3
lea r8, str.missing___in_macro_parameter_list
mov edx, 3
mov rcx, rbx
call fcn.00438940
mov rax, qword [rbx + 0x38]
xor ebp, ebp
mov rax, qword [rax + 0x10]
mov qword [r15], rax
jmp 0x44b8fb
test ebp, ebp
jne 0x44c0f8
mov r9, qword [rax + 0x10]
mov r8, qword [rax + 8]
mov rdx, r15
mov rcx, rbx
call fcn.0044b3f0
test al, al
jne 0x44be36
mov ebp, 1
jmp 0x44ba63
or byte [r15 + 0x1c], 2
test ebp, ebp
je 0x44c028
cmp byte [rbx + 0x452], 0
je 0x44beb1
cmp byte [rbx + 0x446], 0
je 0x44beb1
cmp byte [rbx + 0x430], 0
je 0x44c0b0
lea r8, [0x004dade8]
mov edx, 0xa
mov rcx, rbx
call fcn.004389a0
mov rcx, rbx
call fcn.00444f80
cmp byte [rax + 4], 0x15
jne case.0x44ba85.3
movzx eax, word [r15 + 0x18]
mov r8, qword [rbx + 0x410]
mov rdx, qword [rbx + 0x38]
mov r8, qword [r8 + 0x68]
mov rcx, qword [rdx + 0x10]
test r8, r8
mov qword [r15], rcx
je 0x44c01b
lea rcx, [rax*8]
call r8
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 0x44b750
test ebp, ebp
movzx eax, word [r15 + 0x18]
jne 0x44bec8
test ax, ax
je 0x44bec8
lea r8, str.parameter_name_missing
mov edx, 3
mov rcx, rbx
call fcn.00438940
jmp 0x44be36
test ebp, ebp
je 0x44bf21
xor ebp, ebp
jmp 0x44ba63
lea r8, [rax + rax*2]
mov rdx, qword [r15 + 8]
mov rcx, r9
shl r8, 3
call sub.msvcrt.dll_memcpy
mov r9, rax
mov qword [r15 + 8], r9
mov ebp, 1
jmp 0x44b8fb
cmp dl, 0x4f
jne 0x44bf82
cmp byte [rbx + 0x434], 0
je 0x44ba63
mov rcx, rbx
mov rdx, rax
call fcn.00443560
lea r8, str.__s__may_not_appear_in_macro_parameter_list
mov r9, rax
mov edx, 3
mov rcx, rbx
call fcn.00438940
jmp 0x44be36
cmp al, 0x34
jne 0x44be1e
mov edx, 2
jmp 0x44bdb3
test edi, edi
je 0x44bb4a
jmp 0x44b8fb
lea r9, str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov r8d, dword [rax]
mov edx, 3
mov rcx, rbx
xor ebp, ebp
call fcn.00438b40
jmp 0x44b8fb
lea r9, str._cannot_appear_at_either_end_of___VA_OPT__
jmp 0x44bfd6
lea rdx, [rcx + rcx*2]
mov ebp, 1
lea rax, [rax + rdx*8]
mov qword [r8 + 0x10], rax
jmp 0x44b8fb
movzx eax, word [r12 + 0x18]
shr ax, 6
jmp 0x44bcaf
lea rax, [rcx + rax*8]
mov qword [rdx + 0x10], rax
jmp 0x44bf09
mov r8, qword [rbx + 0x4c8]
mov rdx, r15
mov rcx, rbx
mov r9, r8
call fcn.0044b3f0
cmp byte [rbx + 0x450], 0
mov byte [rbx + 0x16], 1
jne 0x44c080
cmp byte [rbx + 0x452], 0
je 0x44c080
cmp byte [rbx + 0x446], 0
je 0x44c080
cmp byte [rbx + 0x430], 0
je 0x44c0df
lea r8, str.anonymous_variadic_macros_were_introduced_in_C11
mov edx, 0xa
mov rcx, rbx
call fcn.004389a0
jmp 0x44beb1
cmp byte [rbx + 0x47e], 0
jle 0x44beb1
cmp byte [rbx + 0x430], 0
jne 0x44beb1
lea r8, str.anonymous_variadic_macros_were_introduced_in_C99
xor edx, edx
mov rcx, rbx
call fcn.00438940
jmp 0x44beb1
lea r8, str.ISO_C_does_not_permit_named_variadic_macros
mov edx, 0xa
mov rcx, rbx
call fcn.004389a0
jmp 0x44beb1
mov rcx, rsi
mov rdx, r15
call fcn.0044f1b0
movzx ecx, word [r12 + 0x18]
jmp 0x44ba35
lea r8, str.anonymous_variadic_macros_were_introduced_in_C99
mov edx, 0xa
mov rcx, rbx
call fcn.004389a0
jmp 0x44beb1
lea r8, str.macro_parameters_must_be_comma_separated
mov edx, 3
mov rcx, rbx
call fcn.00438940
jmp 0x44be36