Function at 0x44f260
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp + 0x23c]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x44f9c0
mov dword [esp], 0x18
call eax
mov esi, eax
mov eax, dword [ebp + 0x20]
xor ebx, ebx
mov dword [esi], 0
mov word [esi + 0x10], bx
mov dword [esi + 8], eax
movzx eax, byte [esi + 0x14]
mov edx, eax
and edx, 0xfffffffd
mov byte [esi + 0x14], dl
cmp byte [ebp + 0x26f], 0
mov dword [esi + 0xc], 0
sete dl
and eax, 0xffffffd4
shl edx, 3
or eax, edx
mov byte [esi + 0x14], al
mov eax, dword [ebp]
test eax, eax
je 0x44f9b0
cmp byte [eax + 0x3d], 0
setne dl
movzx eax, byte [esi + 0x14]
shl edx, 2
and eax, 0xfffffffb
or eax, edx
mov byte [esi + 0x14], al
cmp byte [ebp + 0x278], 0
je 0x44f3d0
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00452b90
mov ebx, eax
movzx eax, word [esi + 0x10]
test eax, eax
je 0x44f326
mov ecx, dword [ebp + 0x110]
lea eax, [ecx + eax*8]
nop
mov edx, dword [eax - 8]
sub eax, 8
and word [edx + 0x14], 0xefff
mov edi, dword [eax + 4]
cmp ecx, eax
mov dword [edx + 0x18], edi
jne 0x44f310
test bl, bl
je 0x44f3c4
mov eax, dword [esp + 0x64]
movzx eax, byte [eax + 0x14]
mov byte [esp + 0x2c], al
and eax, 0x3f
cmp al, 1
je 0x44f725
mov edi, dword [esp + 0x64]
movzx edi, word [edi + 0x14]
mov edx, edi
mov word [esp + 0x2c], di
shr dx, 6
test al, al
jne 0x44f571
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x64]
mov ecx, 7
movzx eax, byte [eax + 0x14]
mov ebp, dword [edi]
mov dword [edi + 0x18], esi
mov esi, ebp
mov byte [esp + 0x2c], al
and eax, 0xffffffc0
or eax, 1
mov byte [edi + 0x14], al
mov edi, str.__STDC_
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov eax, esi
cmp al, cl
je 0x44f520
mov edi, dword [esp + 0x64]
and dx, 0x2ff
mov eax, edx
shl eax, 6
movzx edi, word [edi + 0x14]
mov edx, edi
mov word [esp + 0x2c], di
and edx, 0x3f
or edx, eax
mov eax, dword [esp + 0x64]
mov word [eax + 0x14], dx
add esp, 0x4c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], ebp
call fcn.00448f60
mov ebx, eax
movzx eax, byte [eax + 4]
cmp al, 0x14
je 0x44f7a1
cmp al, 0x16
je 0x44f422
test byte [ebx + 6], 1
jne 0x44f422
cmp byte [ebp + 0x270], 0
je 0x44fb20
cmp byte [ebp + 0x250], 0
je 0x44fb6f
mov dword [esp + 8], str.ISO_C11_requires_whitespace_after_the_macro_name
mov dword [esp + 4], 2
mov dword [esp], ebp
call fcn.0043a680
test byte [esi + 0x14], 1
je 0x44f700
mov edx, esi
mov eax, ebp
call fcn.0044be10
movzx ebx, byte [esi + 0x14]
xor edi, edi
mov dword [esp + 0x3c], 0
mov byte [esp + 0x3b], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], edi
and ebx, 2
mov byte [esp + 0x2c], bl
xor ebx, ebx
jmp 0x44f49b
cmp ecx, 1
je 0x44f960
movzx ebx, word [eax - 0xa]
test bl, 8
je 0x44f5a0
add dword [esp + 0x34], 1
sub ecx, 1
or byte [esi + 0x14], 0x20
mov dword [eax + 8], ecx
cmp byte [esp + 0x2c], 0
jne 0x44f4de
cmp dl, 0x26
mov eax, ebp
mov edx, esi
sete bl
call fcn.0044be10
mov ecx, dword [esi + 0xc]
cmp ecx, 1
jbe 0x44f4ad
cmp byte [eax - 0xc], 0x25
je 0x44f5d5
movzx edx, byte [eax + 4]
cmp dl, 0x16
je 0x44f890
cmp dl, 0x26
je 0x44f460
cmp byte [esp + 0x2c], 0
je 0x44f48c
cmp dl, 0x35
jne 0x44f615
mov ebx, dword [ebp + 0x2c4]
cmp dword [eax + 8], ebx
je 0x44f9e0
cmp dword [esp + 0x30], 1
je 0x44f632
mov edi, dword [esp + 0x30]
cmp edi, 1
jle 0x44f48c
cmp edi, 2
je 0x44f660
cmp dl, 0x26
je 0x44f690
cmp dl, 0x14
je 0x44f67a
cmp dl, 0x15
je 0x44f980
mov byte [esp + 0x3b], 0
jmp 0x44f48c
mov edi, str.__STDC_FORMAT_MACROS
mov ecx, 0x15
mov esi, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x44f39e
mov edi, str.__STDC_LIMIT_MACROS
mov ecx, 0x14
mov esi, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x44f39e
mov edi, str.__STDC_CONSTANT_MACROS
mov ecx, 0x17
mov esi, ebp
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
mov esi, eax
mov eax, edx
or eax, 0x10
mov edi, eax
mov eax, esi
cmp al, cl
cmovne edx, edi
jmp 0x44f39e
mov eax, dword [esp + 0x64]
and dx, 0x35b
mov edi, dword [esp + 0x64]
mov ecx, edx
shl ecx, 6
movzx eax, word [eax + 0x14]
mov word [esp + 0x2c], ax
and eax, 0x3f
or eax, ecx
mov word [edi + 0x14], ax
jmp 0x44f360
sub ecx, 1
mov dword [esi + 0xc], ecx
mov ecx, ebx
or ecx, 8
mov word [eax - 0xa], cx
movzx ecx, word [eax + 6]
test cl, 2
je 0x44f5c1
or bx, 0x108
mov word [eax - 0xa], bx
and ecx, 1
je 0x44f485
or word [eax - 0xa], 0x200
jmp 0x44f485
test byte [esi + 0x14], 1
movzx edx, byte [eax + 4]
je 0x44f4b1
cmp dl, 0x50
je 0x44f6a0
cmp dword [ebp + 0x24c], 0x13
je 0x44f4b1
mov dword [esp + 8], str._is_not_followed_by_a_macro_parameter
mov dword [esp + 4], 3
xor ebx, ebx
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44f654
cmp dword [esp + 0x30], 1
jne 0x44f4e9
cmp dl, 0x14
jne 0x44f632
mov dword [esp + 0x30], 2
jmp 0x44f48c
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], str.__VA_OPT___must_be_followed_by_an_open_parenthesis
mov dword [esp + 8], eax
mov dword [esp + 4], 3
xor ebx, ebx
mov dword [esp], ebp
call fcn.0043a8c0
mov byte [ebp + 0xe], 0
jmp 0x44f2fd
cmp dl, 0x26
je 0x44fdae
cmp dl, 0x14
mov dword [esp + 0x30], 3
jne 0x44f50d
add dword [esp + 0x30], 1
mov byte [esp + 0x3b], 0
jmp 0x44f48c
mov byte [esp + 0x3b], 1
jmp 0x44f48c
movzx ebx, word [eax + 6]
test bl, 1
je 0x44f6b0
or bh, 2
mov word [eax + 6], bx
mov edi, ebx
or di, 0x100
test byte [eax - 0xa], 2
cmovne ebx, edi
movzx edi, word [eax - 0xa]
sub ecx, 1
and ebx, 0xfffffffe
or ebx, 4
and edi, 1
or ebx, edi
cmp byte [esp + 0x2c], 0
mov word [eax + 6], bx
mov ebx, dword [eax]
mov dword [eax - 0x10], ebx
mov ebx, dword [eax + 4]
mov dword [eax - 0xc], ebx
mov ebx, dword [eax + 8]
mov dword [eax - 8], ebx
mov ebx, dword [eax + 0xc]
mov dword [eax - 4], ebx
mov dword [esi + 0xc], ecx
je 0x44f48c
jmp 0x44f4de
lea edx, [esi + 0xc]
mov eax, ebp
call fcn.0044bdb0
mov edx, dword [ebx]
mov dword [eax], edx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov edx, dword [ebx + 0xc]
mov dword [eax + 0xc], edx
jmp 0x44f435
cmp byte [ebp + 0x26f], 0
je 0x44fa08
mov eax, dword [esp + 0x64]
movzx ecx, word [eax + 0x14]
mov edx, ecx
shr dx, 6
test dl, 4
je 0x44f9ff
test dl, 0x10
jne 0x44f7d5
mov eax, dword [ebp + 0x228]
test eax, eax
je 0x44f779
mov edi, dword [esp + 0x64]
mov dword [esp], ebp
mov dword [esp + 4], edi
call eax
test al, al
mov eax, dword [esp + 0x64]
jne 0x44fdcc
movzx ecx, word [eax + 0x14]
cmp byte [ebp + 0x267], 0
setne al
test al, al
jne 0x44f7cf
mov eax, dword [esp + 0x64]
shr cx, 6
mov edx, ecx
movzx eax, byte [eax + 0x14]
mov byte [esp + 0x2c], al
and eax, 0x3f
jmp 0x44f358
test byte [ebx + 6], 1
jne 0x44f422
xor edi, edi
mov dword [esp], ebp
call fcn.00448f60
movzx ecx, byte [eax + 4]
lea edx, [ecx - 0x13]
cmp dl, 0x22
ja case.0x44f7c8.1
movzx edx, dl
jmp dword [edx*4 + 0x4d423c]
shr cx, 6
mov edx, ecx
mov edi, dword [esp + 0x64]
and edx, 0x14
mov eax, 0
cmp dx, 4
mov edx, 0xb
cmove eax, edx
mov edx, dword [edi]
mov dword [esp + 0x10], str.__s__redefined
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0x20]
mov dword [esp + 4], eax
mov dword [esp], ebp
mov dword [esp + 8], edx
call fcn.0043a820
test al, al
mov eax, dword [esp + 0x64]
movzx eax, byte [eax + 0x14]
je 0x44f883
mov byte [esp + 0x2c], al
and eax, 0x3f
cmp al, 1
jne 0x44f345
mov eax, dword [esp + 0x64]
movzx eax, word [eax + 0x14]
mov edx, eax
mov word [esp + 0x2c], ax
shr dx, 6
test dl, 4
jne 0x44f571
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], str.this_is_the_location_of_the_previous_definition
mov dword [esp + 0xc], 0
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 8]
mov dword [esp + 4], 5
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0043a780
mov eax, dword [esp + 0x64]
movzx eax, byte [eax + 0x14]
and eax, 0x3f
jmp 0x44f345
test bl, bl
mov edi, dword [esp + 0x30]
jne 0x44f960
cmp byte [esp + 0x2c], 0
je 0x44fd92
test edi, edi
jne 0x44fb96
mov edx, dword [ebp + 0x24]
sub ecx, 1
mov eax, dword [edx + 8]
and byte [esi + 0x14], 0xef
test ecx, ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 4], eax
jne 0x44fb8c
mov ebx, dword [ebp + 0x23c]
shl ecx, 4
mov ebx, dword [ebx + 0x34]
test ebx, ebx
je 0x44fdbd
mov dword [esp], ecx
call ebx
mov edi, dword [esp + 0x34]
mov edx, eax
mov dword [esp + 0x2c], eax
test edi, edi
je 0x44fd10
mov ebx, dword [esi + 0xc]
mov ecx, ebx
sub ecx, edi
shl ecx, 4
add ecx, eax
test ebx, ebx
je 0x44fd2d
mov eax, dword [esi + 4]
shl ebx, 4
add ebx, eax
jmp 0x44f935
mov dword [edx], edi
mov edi, dword [eax + 4]
add edx, 0x10
mov dword [edx - 0xc], edi
mov edi, dword [eax + 8]
mov dword [edx - 8], edi
mov edi, dword [eax + 0xc]
mov dword [edx - 4], edi
add eax, 0x10
cmp ebx, eax
je 0x44fd2d
cmp byte [eax + 4], 0x26
mov edi, dword [eax]
jne 0x44f913
mov dword [ecx], edi
mov edi, dword [eax + 4]
add ecx, 0x10
mov dword [ecx - 0xc], edi
mov edi, dword [eax + 8]
mov dword [ecx - 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx - 4], edi
jmp 0x44f92a
mov dword [esp + 8], str._cannot_appear_at_either_end_of_a_macro_expansion
mov dword [esp + 4], 3
xor ebx, ebx
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44f654
sub dword [esp + 0x30], 1
mov edi, dword [esp + 0x30]
cmp edi, 2
jne 0x44f516
cmp byte [esp + 0x3b], 0
jne 0x44fdae
mov dword [esp + 0x30], 0
jmp 0x44f48c
xor edx, edx
jmp 0x44f2d3
mov dword [esp + 4], 0x18
mov dword [esp], ebp
call fcn.00449190
mov esi, eax
jmp 0x44f287
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x44fd9f
mov eax, dword [eax]
mov dword [esp + 0x30], 1
mov dword [esp + 0x3c], eax
jmp 0x44f48c
mov edx, eax
mov eax, ebp
call fcn.0044c040
mov eax, dword [esp + 0x64]
movzx ecx, word [eax + 0x14]
mov edx, ecx
shr dx, 6
test dl, 0x10
jne 0x44f7d5
test dl, 4
jne 0x44f752
test dh, 1
jne 0x44fbbb
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x2c], eax
movzx eax, word [eax + 0x10]
cmp ax, word [esi + 0x10]
jne 0x44f7d5
mov edi, dword [esp + 0x2c]
movzx ecx, byte [edi + 0x14]
xor cl, byte [esi + 0x14]
and ecx, 3
jne 0x44f7d5
test eax, eax
mov dword [esp + 0x34], eax
je 0x44faa2
mov ecx, dword [edi]
mov eax, dword [esi]
mov edi, dword [ecx]
cmp dword [eax], edi
jne 0x44f7d5
mov word [esp + 0x30], dx
xor edi, edi
mov edx, dword [esp + 0x34]
mov byte [esp + 0x34], bl
jmp 0x44fa91
mov ebx, dword [eax + edi*4]
cmp dword [ecx + edi*4], ebx
jne 0x44fe50
add edi, 1
cmp edx, edi
jne 0x44fa85
movzx edx, word [esp + 0x30]
movzx ebx, byte [esp + 0x34]
cmp byte [ebp + 0x278], 0
jne 0x44feb3
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp eax, dword [esi + 0xc]
jne 0x44f7d5
xor edi, edi
test eax, eax
jne 0x44fae0
jmp 0x44fbbb
mov eax, dword [esp + 0x2c]
add edi, 1
cmp dword [eax + 0xc], edi
jbe 0x44f87b
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x2c]
mov eax, edi
shl eax, 4
add edx, eax
mov dword [esp + 4], edx
add eax, dword [ecx + 4]
mov dword [esp], eax
call fcn.00445cd0
test eax, eax
jne 0x44fad0
mov eax, dword [esp + 0x64]
movzx eax, word [eax + 0x14]
mov edx, eax
mov word [esp + 0x2c], ax
shr dx, 6
jmp 0x44f7d5
cmp al, 0x36
je 0x44fd88
jbe 0x44fd80
cmp al, 0x3d
jne 0x44fbcf
mov eax, dword [ebx + 0xc]
movzx eax, byte [eax]
mov dword [esp], str._______._:______
mov dword [esp + 4], eax
call sub.msvcrt.dll_strchr
test eax, eax
sete al
movzx eax, al
add eax, eax
mov dword [esp + 8], str.missing_whitespace_after_the_macro_name
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44f422
mov dword [esp + 8], str.ISO_C99_requires_whitespace_after_the_macro_name
mov dword [esp + 4], 2
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44f422
and word [eax + 6], 0xfffe
jmp 0x44f8ca
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], str.unterminated___VA_OPT__
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0043a8c0
jmp 0x44f654
mov eax, dword [esp + 0x64]
movzx eax, byte [eax + 0x14]
mov byte [esp + 0x2c], al
and eax, 0x3f
jmp 0x44f358
cmp al, 0x43
je 0x44fd88
xor eax, eax
jmp 0x44fb56
mov dword [esp + 8], str.missing___in_macro_parameter_list
mov dword [esp + 4], 3
mov dword [esp], ebp
call fcn.0043a680
mov eax, dword [ebp + 0x24]
xor ebx, ebx
mov eax, dword [eax + 8]
mov dword [esi], eax
jmp 0x44f654
test edi, edi
jne 0x44feed
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc], edx
mov eax, dword [eax + 8]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0044f130
test al, al
jne 0x44fbf6
mov edi, 1
jmp 0x44f7ad
test edi, edi
movzx eax, word [esi + 0x10]
jne 0x44fcb9
test ax, ax
je 0x44fcb9
mov dword [esp + 8], str.parameter_name_missing
mov dword [esp + 4], 3
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44fbf6
or byte [esi + 0x14], 2
test edi, edi
je 0x44fdeb
cmp byte [ebp + 0x272], 0
je 0x44fca3
cmp byte [ebp + 0x266], 0
je 0x44fca3
cmp byte [ebp + 0x250], 0
je 0x44fe96
mov dword [esp + 8], 0x4d400c
mov dword [esp + 4], 0xa
mov dword [esp], ebp
call fcn.0043a700
mov dword [esp], ebp
call fcn.00448f60
cmp byte [eax + 4], 0x15
jne case.0x44f7c8.3
movzx eax, word [esi + 0x10]
mov ecx, dword [ebp + 0x23c]
mov edi, dword [ebp + 0x24]
mov ecx, dword [ecx + 0x34]
mov edx, dword [edi + 8]
test ecx, ecx
mov dword [esi], edx
je 0x44fde0
shl eax, 2
mov dword [esp], eax
call ecx
mov edi, eax
movzx eax, word [esi + 0x10]
mov edx, dword [esi]
mov dword [esp], edi
mov dword [esp + 4], edx
shl eax, 2
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov dword [esi], edi
or byte [esi + 0x14], 1
jmp 0x44f422
test edi, edi
jne 0x44f7ab
jmp 0x44fc42
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
shl eax, 4
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x2c]
mov ebx, 1
mov dword [esi + 4], eax
jmp 0x44f654
cmp cl, 0x4f
jne 0x44fd50
cmp byte [ebp + 0x254], 0
je 0x44f7ad
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.004473a0
mov dword [esp + 8], str.__s__may_not_appear_in_macro_parameter_list
mov dword [esp + 0xc], eax
mov dword [esp + 4], 3
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44fbf6
cmp al, 0x34
jne 0x44fbd7
mov eax, 2
jmp 0x44fb56
test edi, edi
je 0x44f8af
jmp 0x44f654
mov dword [esp + 0xc], str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov eax, dword [eax]
jmp 0x44f63e
mov dword [esp + 0xc], str._cannot_appear_at_either_end_of___VA_OPT__
mov eax, dword [eax]
jmp 0x44f63e
add ecx, eax
mov ebx, 1
mov dword [edx + 8], ecx
jmp 0x44f654
movzx eax, word [eax + 0x14]
mov edx, eax
mov word [esp + 0x2c], ax
shr dx, 6
jmp 0x44fa28
lea eax, [edx + eax*4]
mov dword [edi + 8], eax
jmp 0x44fcf7
mov eax, dword [ebp + 0x2c0]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
call fcn.0044f130
cmp byte [ebp + 0x270], 0
mov byte [ebp + 0xe], 1
jne 0x44fe5f
cmp byte [ebp + 0x272], 0
je 0x44fe5f
cmp byte [ebp + 0x266], 0
je 0x44fe5f
cmp byte [ebp + 0x250], 0
je 0x44fed0
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C11
mov dword [esp + 4], 0xa
mov dword [esp], ebp
call fcn.0043a700
jmp 0x44fca3
movzx edx, word [esp + 0x30]
movzx ebx, byte [esp + 0x34]
jmp 0x44f7d5
cmp byte [ebp + 0x292], 0
jle 0x44fca3
cmp byte [ebp + 0x250], 0
jne 0x44fca3
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C99
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44fca3
mov dword [esp + 8], str.ISO_C_does_not_permit_named_variadic_macros
mov dword [esp + 4], 0xa
mov dword [esp], ebp
call fcn.0043a700
jmp 0x44fca3
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00452dc0
mov edi, dword [esp + 0x64]
movzx ecx, word [edi + 0x14]
jmp 0x44f783
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C99
mov dword [esp + 4], 0xa
mov dword [esp], ebp
call fcn.0043a700
jmp 0x44fca3
mov dword [esp + 8], str.macro_parameters_must_be_comma_separated
mov dword [esp + 4], 3
mov dword [esp], ebp
call fcn.0043a680
jmp 0x44fbf6