Function at 0x43c100
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov eax, dword [edi + 0x234]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x43c630
mov dword [esp], 0x18
call eax
mov ebx, eax
mov eax, dword [edi + 0x20]
xor ecx, ecx
mov dword [ebx], 0
mov word [ebx + 0x10], cx
mov dword [ebx + 8], eax
movzx eax, byte [ebx + 0x14]
mov edx, eax
and edx, 0xfffffffd
mov byte [ebx + 0x14], dl
cmp byte [edi + 0x267], 0
mov dword [ebx + 0xc], 0
sete dl
and eax, 0xffffffd4
shl edx, 3
or eax, edx
mov byte [ebx + 0x14], al
mov eax, dword [edi]
test eax, eax
je 0x43c647
cmp byte [eax + 0x3d], 0
setne dl
movzx eax, byte [ebx + 0x14]
shl edx, 2
and eax, 0xfffffffb
or eax, edx
mov byte [ebx + 0x14], al
cmp byte [edi + 0x270], 0
je 0x43c244
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.00449740
mov byte [esp + 0x1c], al
movzx eax, word [ebx + 0x10]
test eax, eax
lea ecx, [eax - 1]
lea edx, [eax*8 - 8]
je 0x43c1d5
mov esi, dword [edi + 0x110]
sub ecx, 1
add esi, edx
sub edx, 8
mov eax, dword [esi]
and word [eax + 0x14], 0xefff
cmp ecx, 0xffffffff
mov esi, dword [esi + 4]
mov dword [eax + 0x18], esi
jne 0x43c1b4
cmp byte [esp + 0x1c], 0
je 0x43c237
movzx eax, byte [ebp + 0x14]
and eax, 0x3f
cmp al, 1
je 0x43c580
movzx edx, word [ebp + 0x14]
shr dx, 6
test al, al
jne 0x43c390
movzx eax, byte [ebp + 0x14]
mov edi, str.__STDC_
mov ecx, 7
mov dword [ebp + 0x18], ebx
and eax, 0xffffffc0
or eax, 1
mov byte [ebp + 0x14], al
mov eax, dword [ebp]
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x43c344
movzx eax, word [ebp + 0x14]
and dx, 0x2ff
shl edx, 6
and eax, 0x3f
or eax, edx
mov word [ebp + 0x14], ax
movzx eax, byte [esp + 0x1c]
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edi
call fcn.00441f70
mov esi, eax
movzx eax, byte [eax + 4]
cmp al, 0x14
je 0x43c5e4
cmp al, 0x16
je 0x43c296
test byte [esi + 6], 1
jne 0x43c296
cmp byte [edi + 0x268], 0
je 0x43c6ee
cmp byte [edi + 0x248], 0
je 0x43c86b
mov dword [esp + 8], str.ISO_C11_requires_whitespace_after_the_macro_name
mov dword [esp + 4], 2
mov dword [esp], edi
call fcn.0043d110
test byte [ebx + 0x14], 1
je 0x43c524
mov edx, ebx
mov eax, edi
call fcn.00439440
mov ecx, eax
mov dword [esp + 0x54], ebp
xor esi, esi
mov ebp, ebx
mov dword [esp + 0x1c], 0
jmp 0x43c2e2
add dword [esp + 0x1c], 1
sub eax, 1
or byte [ebp + 0x14], 0x20
mov dword [ecx + 8], eax
cmp bl, 0x26
mov edx, ebp
sete al
mov esi, eax
mov eax, edi
call fcn.00439440
mov ecx, eax
mov eax, dword [ebp + 0xc]
cmp eax, 1
jbe 0x43c2f4
cmp byte [ecx - 0xc], 0x25
je 0x43c3b0
movzx ebx, byte [ecx + 4]
cmp bl, 0x16
je 0x43c400
cmp bl, 0x26
jne 0x43c2cf
cmp eax, 1
je 0x43c550
movzx edx, word [ecx - 0xa]
test dl, 8
jne 0x43c2c0
sub eax, 1
mov dword [ebp + 0xc], eax
mov eax, edx
or eax, 8
mov word [ecx - 0xa], ax
movzx eax, word [ecx + 6]
test al, 2
je 0x43c338
or dx, 0x108
mov word [ecx - 0xa], dx
test al, 1
je 0x43c2cf
or word [ecx - 0xa], 0x200
jmp 0x43c2cf
mov edi, str.__STDC_FORMAT_MACROS
mov ecx, 0x15
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x43c222
mov edi, str.__STDC_LIMIT_MACROS
mov ecx, 0x14
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x43c222
mov ecx, 0x17
mov esi, eax
mov edi, str.__STDC_CONSTANT_MACROS
mov eax, edx
repe cmpsb byte [esi], byte es:[edi]
seta bl
setb cl
or eax, 0x10
cmp bl, cl
cmovne edx, eax
jmp 0x43c222
movzx eax, word [ebp + 0x14]
and dx, 0x35b
mov ecx, edx
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov word [ebp + 0x14], ax
jmp 0x43c1fb
test byte [ebp + 0x14], 1
movzx ebx, byte [ecx + 4]
je 0x43c2f8
cmp bl, 0x50
je 0x43c4d1
cmp dword [edi + 0x244], 0xf
je 0x43c2f8
mov dword [esp + 8], str._is_not_followed_by_a_macro_parameter
mov ebx, ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.0043d110
mov byte [esp + 0x1c], 0
jmp 0x43c573
mov edx, esi
mov ebx, ebp
mov ebp, dword [esp + 0x54]
test dl, dl
jne 0x43c556
mov edx, dword [edi + 0x24]
sub eax, 1
mov edx, dword [edx + 8]
and byte [ebx + 0x14], 0xef
test eax, eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 4], edx
je 0x43c42c
and word [edx + 6], 0xfffe
mov ecx, dword [edi + 0x234]
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x43c618
shl eax, 4
mov dword [esp], eax
call ecx
mov esi, dword [esp + 0x1c]
test esi, esi
mov dword [esp + 0x20], eax
je 0x43c830
mov edx, dword [ebx + 0xc]
mov ecx, edx
sub ecx, esi
shl ecx, 4
add ecx, eax
test edx, edx
je 0x43c4c0
mov eax, dword [ebx + 4]
shl edx, 4
mov dword [esp + 0x1c], ebx
lea esi, [eax + edx]
mov edx, dword [esp + 0x20]
jmp 0x43c496
mov dword [edx], ebx
mov ebx, dword [eax + 4]
add eax, 0x10
add edx, 0x10
mov dword [edx - 0xc], ebx
mov ebx, dword [eax - 8]
mov dword [edx - 8], ebx
mov ebx, dword [eax - 4]
mov dword [edx - 4], ebx
cmp eax, esi
je 0x43c4bc
cmp byte [eax + 4], 0x26
mov ebx, dword [eax]
jne 0x43c478
mov dword [ecx], ebx
mov ebx, dword [eax + 4]
add eax, 0x10
add ecx, 0x10
mov dword [ecx - 0xc], ebx
mov ebx, dword [eax - 8]
mov dword [ecx - 8], ebx
mov ebx, dword [eax - 4]
mov dword [ecx - 4], ebx
cmp eax, esi
jne 0x43c496
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov byte [esp + 0x1c], 1
mov dword [ebx + 4], eax
jmp 0x43c573
movzx edx, word [ecx + 6]
test dl, 1
je 0x43c4e1
or dh, 2
mov word [ecx + 6], dx
mov esi, edx
or si, 0x100
test byte [ecx - 0xa], 2
cmovne edx, esi
movzx esi, word [ecx - 0xa]
sub eax, 1
and edx, 0xfffffffe
or edx, 4
and esi, 1
or edx, esi
mov word [ecx + 6], dx
mov edx, dword [ecx]
mov dword [ecx - 0x10], edx
mov edx, dword [ecx + 4]
mov dword [ecx - 0xc], edx
mov edx, dword [ecx + 8]
mov dword [ecx - 8], edx
mov edx, dword [ecx + 0xc]
mov dword [ecx - 4], edx
mov dword [ebp + 0xc], eax
jmp 0x43c2cf
lea edx, [ebx + 0xc]
mov eax, edi
call fcn.004393e0
mov ecx, eax
mov eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x43c2ab
mov ebx, ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 8], str._cannot_appear_at_either_end_of_a_macro_expansion
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.0043d110
mov byte [esp + 0x1c], 0
mov byte [edi + 0xe], 0
jmp 0x43c1a2
cmp byte [edi + 0x267], 0
jne 0x43c852
movzx edx, word [ebp + 0x14]
shr dx, 6
test dl, 0x10
jne 0x43c657
test dl, 4
je 0x43c73d
mov eax, dword [edi + 0x228]
test eax, eax
je 0x43c5ca
mov dword [esp + 4], ebp
mov dword [esp], edi
call eax
movzx edx, word [ebp + 0x14]
shr dx, 6
test al, al
jne 0x43c73d
cmp byte [edi + 0x25f], 0
setne al
test al, al
jne 0x43c657
movzx eax, byte [ebp + 0x14]
and eax, 0x3f
jmp 0x43c1f3
test byte [esi + 6], 1
jne 0x43c296
mov dword [esp + 0x1c], 0
mov dword [esp], edi
call fcn.00441f70
movzx ecx, byte [eax + 4]
lea edx, [ecx - 0x13]
cmp dl, 0x22
ja case.0x43c611.1
movzx edx, dl
jmp dword [edx*4 + 0x4cd7d0]
mov ecx, dword [edi + 0x24]
shl eax, 4
add eax, edx
mov byte [esp + 0x1c], 1
mov dword [ecx + 8], eax
jmp 0x43c573
mov dword [esp + 4], 0x18
mov dword [esp], edi
call fcn.00442210
mov ebx, eax
jmp 0x43c12b
xor edx, edx
jmp 0x43c176
mov ebx, dword [esp + 0x24]
movzx edx, word [esp + 0x2a]
and edx, 0x14
mov eax, 0xb
mov ecx, dword [ebp]
cmp dx, 4
mov edx, 0
cmovne eax, edx
mov edx, dword [edi + 0x20]
mov dword [esp + 0x10], str.__s__redefined
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0043d2b0
test al, al
movzx eax, byte [ebp + 0x14]
je 0x43c6e6
mov edx, eax
and edx, 0x3f
cmp dl, 1
jne 0x43c6e6
movzx edx, word [ebp + 0x14]
shr dx, 6
test dl, 4
jne 0x43c390
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
mov dword [esp + 0x10], str.this_is_the_location_of_the_previous_definition
mov dword [esp + 0xc], 0
mov dword [esp + 4], 5
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.0043d210
movzx eax, byte [ebp + 0x14]
and eax, 0x3f
jmp 0x43c1eb
cmp al, 0x36
je 0x43ca2b
jbe 0x43ca23
cmp al, 0x3d
nop
jne 0x43c888
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esp], str._______._:______
mov dword [esp + 4], eax
call sub.msvcrt.dll_strchr
cmp eax, 1
sbb eax, eax
and eax, 2
mov dword [esp + 8], str.missing_whitespace_after_the_macro_name
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0043d110
jmp 0x43c296
test dh, 1
jne 0x43c5d8
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x20], eax
movzx eax, word [eax + 0x10]
cmp ax, word [ebx + 0x10]
jne 0x43c657
mov esi, dword [esp + 0x20]
movzx ecx, byte [ebx + 0x14]
xor cl, byte [esi + 0x14]
and ecx, 3
jne 0x43c657
test eax, eax
mov dword [esp + 0x24], eax
je 0x43c7c0
mov ecx, dword [esi]
mov esi, dword [ebx]
mov eax, dword [esi]
cmp dword [ecx], eax
jne 0x43c657
mov eax, dword [esp + 0x24]
mov word [esp + 0x2a], dx
mov dword [esp + 0x24], ebx
mov ebx, ecx
sub eax, 1
mov dword [esp + 0x2c], eax
xor eax, eax
mov edx, dword [esp + 0x2c]
jmp 0x43c7b3
mov ecx, dword [ebx + eax*4 + 4]
add eax, 1
cmp ecx, dword [esi + eax*4]
jne 0x43c64e
cmp eax, edx
jne 0x43c7a3
mov ebx, dword [esp + 0x24]
movzx edx, word [esp + 0x2a]
cmp byte [edi + 0x270], 0
jne 0x43caf8
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebx + 0xc]
jne 0x43c657
test eax, eax
je 0x43c5d8
xor esi, esi
jmp 0x43c800
mov eax, dword [esp + 0x20]
add esi, 1
cmp esi, dword [eax + 0xc]
jae 0x43cb15
mov edx, dword [ebx + 4]
mov eax, esi
shl eax, 4
add edx, eax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x20]
add eax, dword [edx + 4]
mov dword [esp], eax
call fcn.0043f340
test eax, eax
jne 0x43c7f0
movzx edx, word [ebp + 0x14]
shr dx, 6
jmp 0x43c657
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
shl eax, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x43c4c0
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], edi
call fcn.00439660
jmp 0x43c58d
mov dword [esp + 8], str.ISO_C99_requires_whitespace_after_the_macro_name
mov dword [esp + 4], 2
mov dword [esp], edi
call fcn.0043d110
jmp 0x43c296
cmp al, 0x43
je 0x43ca2b
xor eax, eax
jmp 0x43c724
mov dword [esp + 8], str.missing___in_macro_parameter_list
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.0043d110
mov eax, dword [edi + 0x24]
mov byte [esp + 0x1c], 0
mov eax, dword [eax + 8]
mov dword [ebx], eax
jmp 0x43c573
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x43cb3f
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.0043bff0
test al, al
jne 0x43c8af
mov dword [esp + 0x1c], 1
jmp 0x43c5f6
mov ecx, dword [esp + 0x1c]
movzx eax, word [ebx + 0x10]
test ecx, ecx
jne 0x43c980
test ax, ax
je 0x43c980
mov dword [esp + 8], str.parameter_name_missing
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.0043d110
jmp 0x43c8af
mov eax, dword [esp + 0x1c]
or byte [ebx + 0x14], 2
test eax, eax
je 0x43ca41
cmp byte [edi + 0x26a], 0
je 0x43c96a
cmp byte [edi + 0x25e], 0
je 0x43c96a
cmp byte [edi + 0x248], 0
je 0x43cadb
mov dword [esp + 8], 0x4cd5b8
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.0043d190
mov dword [esp], edi
call fcn.00441f70
cmp byte [eax + 4], 0x15
jne case.0x43c611.3
movzx eax, word [ebx + 0x10]
mov edx, dword [edi + 0x24]
mov ecx, dword [edx + 8]
mov dword [esp + 0x1c], ecx
mov dword [ebx], ecx
mov ecx, dword [edi + 0x234]
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x43ca35
shl eax, 2
mov dword [esp], eax
call ecx
movzx edx, word [ebx + 0x10]
shl edx, 2
mov ecx, eax
mov eax, dword [ebx]
mov dword [esp], ecx
mov dword [esp + 8], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x1c]
mov dword [ebx], ecx
or byte [ebx + 0x14], 1
jmp 0x43c296
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x43c5ee
jmp 0x43c909
cmp cl, 0x4f
jne 0x43c9f6
cmp byte [edi + 0x24c], 0
je 0x43c5f6
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00442190
mov dword [esp + 8], str.__s__may_not_appear_in_macro_parameter_list
mov dword [esp + 4], 3
mov dword [esp], edi
mov dword [esp + 0xc], eax
call fcn.0043d110
jmp 0x43c8af
cmp al, 0x34
jne 0x43c890
mov eax, 2
jmp 0x43c724
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + eax*4]
mov dword [edx + 8], eax
jmp 0x43c9ca
mov eax, dword [edi + 0x2b8]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
call fcn.0043bff0
cmp byte [edi + 0x268], 0
mov byte [edi + 0xe], 1
jne 0x43caa4
cmp byte [edi + 0x26a], 0
je 0x43caa4
cmp byte [edi + 0x25e], 0
je 0x43caa4
cmp byte [edi + 0x248], 0
je 0x43cb22
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C11
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.0043d190
jmp 0x43c96a
cmp byte [edi + 0x28a], 0
jle 0x43c96a
cmp byte [edi + 0x248], 0
jne 0x43c96a
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C99
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.0043d110
jmp 0x43c96a
mov dword [esp + 8], str.ISO_C_does_not_permit_named_variadic_macros
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.0043d190
jmp 0x43c96a
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00449970
movzx edx, word [ebp + 0x14]
shr dx, 6
jmp 0x43c5d4
movzx edx, word [ebp + 0x14]
shr dx, 6
jmp 0x43c5d8
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C99
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.0043d190
jmp 0x43c96a
mov dword [esp + 8], str.macro_parameters_must_be_comma_separated
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.0043d110
jmp 0x43c8af