Function at 0x4308b0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
mov eax, dword [edi + 0x228]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x430e71
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 + 0x259], 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 0x430e90
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 + 0x262], 0
je 0x430a44
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.00432c30
mov byte [esp + 0x2c], al
movzx eax, word [ebx + 0x10]
test eax, eax
je 0x430979
mov ecx, dword [edi + 0x110]
lea eax, [ecx + eax*8]
mov edx, dword [eax - 8]
sub eax, 8
and word [edx + 0x14], 0xefff
mov esi, dword [eax + 4]
cmp ecx, eax
mov dword [edx + 0x18], esi
jne 0x430963
cmp byte [esp + 0x2c], 0
je 0x430a37
movzx eax, byte [ebp + 0x14]
and eax, 0x3f
cmp al, 1
je 0x430d20
movzx edx, word [ebp + 0x14]
shr dx, 6
test al, al
je 0x4309b6
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
movzx eax, byte [ebp + 0x14]
mov dword [ebp + 0x18], ebx
mov edi, str.__STDC_
mov ecx, 7
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]
jne 0x430a20
mov edi, str.__STDC_FORMAT_MACROS
mov ecx, 0x15
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x430a20
mov edi, str.__STDC_LIMIT_MACROS
mov ecx, 0x14
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x430a20
mov ecx, 0x17
mov esi, eax
mov edi, str.__STDC_CONSTANT_MACROS
repe cmpsb byte [esi], byte es:[edi]
mov eax, edx
seta bl
setb cl
or eax, 0x10
cmp bl, cl
cmovne edx, eax
mov esi, esi
lea edi, [edi]
and dx, 0x2ff
mov eax, edx
movzx edx, word [ebp + 0x14]
shl eax, 6
and edx, 0x3f
or edx, eax
mov word [ebp + 0x14], dx
movzx eax, byte [esp + 0x2c]
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edi
call fcn.00443790
mov esi, eax
movzx eax, byte [eax + 4]
cmp al, 0x14
je 0x430d90
cmp al, 0x16
je 0x430aa0
test byte [esi + 6], 1
jne 0x430aa0
cmp byte [edi + 0x25a], 0
je 0x430fa0
cmp byte [edi + 0x23c], 0
je 0x431011
mov dword [esp + 8], str.ISO_C11_requires_whitespace_after_the_macro_name
mov dword [esp + 4], 2
mov dword [esp], edi
call fcn.00436be0
lea esi, [esi]
lea edi, [edi]
test byte [ebx + 0x14], 1
je 0x430cc3
mov edx, ebx
mov eax, edi
call fcn.0042d880
xor esi, esi
xor edx, edx
mov dword [esp + 0x64], ebp
mov ecx, esi
mov dword [esp + 0x2c], edx
mov esi, ebx
mov ebx, ecx
jmp 0x430aee
add dword [esp + 0x2c], 1
sub edx, 1
or byte [esi + 0x14], 0x20
mov dword [eax + 8], edx
cmp cl, 0x26
mov edx, esi
mov eax, edi
sete bl
call fcn.0042d880
mov edx, dword [esi + 0xc]
cmp edx, 1
jbe 0x430afc
cmp byte [eax - 0xc], 0x25
je 0x430b50
movzx ecx, byte [eax + 4]
cmp cl, 0x16
je 0x430b94
cmp cl, 0x26
jne 0x430adf
cmp edx, 1
je 0x430cf0
movzx ebx, word [eax - 0xa]
test bl, 8
jne 0x430ad0
sub edx, 1
mov dword [esi + 0xc], edx
mov edx, ebx
or edx, 8
mov word [eax - 0xa], dx
movzx edx, word [eax + 6]
test dl, 2
je 0x430b41
or bx, 0x108
mov word [eax - 0xa], bx
and edx, 1
je 0x430adf
or word [eax - 0xa], 0x200
jmp 0x430adf
test byte [esi + 0x14], 1
movzx ecx, byte [eax + 4]
je 0x430b00
cmp cl, 0x50
je 0x430c70
cmp dword [edi + 0x238], 0xf
je 0x430b00
mov dword [esp + 8], str._is_not_followed_by_a_macro_parameter
mov dword [esp + 4], 3
mov ebx, esi
mov dword [esp], edi
mov ebp, dword [esp + 0x64]
call fcn.00436be0
mov byte [esp + 0x2c], 0
jmp 0x430d13
mov eax, ebx
mov ebp, dword [esp + 0x64]
mov ebx, esi
test al, al
jne 0x430cf6
mov ecx, dword [edi + 0x24]
sub edx, 1
mov eax, dword [ecx + 8]
and byte [esi + 0x14], 0xef
test edx, edx
mov dword [esi + 0xc], edx
mov dword [esi + 4], eax
je 0x430bc0
and word [eax + 6], 0xfffe
mov esi, dword [edi + 0x228]
shl edx, 4
mov esi, dword [esi + 0x34]
test esi, esi
je 0x430dc4
mov dword [esp], edx
call esi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
test edx, edx
je 0x430fef
mov esi, dword [ebx + 0xc]
mov ecx, esi
sub ecx, edx
mov edx, eax
shl ecx, 4
add ecx, eax
test esi, esi
je 0x430c58
mov eax, dword [ebx + 4]
shl esi, 4
mov dword [esp + 0x2c], ebx
add esi, eax
jmp 0x430c2e
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 esi, eax
je 0x430c54
cmp byte [eax + 4], 0x26
mov ebx, dword [eax]
jne 0x430c10
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 esi, eax
jne 0x430c2e
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov byte [esp + 0x2c], 1
mov dword [ebx + 4], eax
jmp 0x430d13
movzx ebx, word [eax + 6]
test bl, 1
je 0x430c80
or bh, 2
mov word [eax + 6], bx
mov ebp, ebx
or bp, 0x100
test byte [eax - 0xa], 2
cmovne ebx, ebp
movzx ebp, word [eax - 0xa]
sub edx, 1
and ebx, 0xfffffffe
or ebx, 4
and ebp, 1
or ebx, ebp
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], edx
jmp 0x430adf
lea edx, [ebx + 0xc]
mov eax, edi
call fcn.0042d820
mov edx, dword [esi]
mov dword [eax], edx
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
jmp 0x430ab3
mov ebp, dword [esp + 0x64]
mov ebx, esi
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.00436be0
mov byte [esp + 0x2c], 0
mov byte [edi + 0xe], 0
jmp 0x430952
cmp byte [edi + 0x259], 0
je 0x430ea0
movzx ecx, word [ebp + 0x14]
mov edx, ecx
shr dx, 6
test dl, 4
je 0x430e97
test dl, 0x10
jne 0x430dd9
mov eax, dword [edi + 0x224]
test eax, eax
je 0x430d68
mov dword [esp + 4], ebp
mov dword [esp], edi
call eax
test al, al
jne 0x4311e4
movzx ecx, word [ebp + 0x14]
cmp byte [edi + 0x253], 0
setne al
test al, al
jne 0x430dd3
movzx eax, byte [ebp + 0x14]
shr cx, 6
mov edx, ecx
and eax, 0x3f
jmp 0x43099b
test byte [esi + 6], 1
jne 0x430aa0
mov dword [esp + 0x2c], 0
mov dword [esp], edi
call fcn.00443790
movzx ecx, byte [eax + 4]
lea edx, [ecx - 0x13]
cmp dl, 0x22
ja case.0x430dbd.1
movzx edx, dl
jmp dword [edx*4 + 0x4d6e80]
add edx, eax
mov byte [esp + 0x2c], 1
mov dword [ecx + 8], edx
jmp 0x430d13
shr cx, 6
mov edx, ecx
and edx, 0x14
mov eax, 0
cmp dx, 4
mov edx, 0xb
cmove eax, edx
mov edx, dword [ebp]
mov dword [esp + 0x10], str.__s__redefined
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], edx
mov edx, dword [edi + 0x20]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], edx
call fcn.00436d80
test al, al
movzx eax, byte [ebp + 0x14]
je 0x430e69
movzx edx, word [ebp + 0x14]
and eax, 0x3f
shr dx, 6
cmp al, 1
jne 0x43099b
test dl, 4
jne 0x43099f
mov dword [esp + 0x10], str.this_is_the_location_of_the_previous_definition
mov dword [esp + 0xc], 0
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
mov dword [esp + 4], 5
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00436ce0
movzx eax, byte [ebp + 0x14]
and eax, 0x3f
jmp 0x430993
mov dword [esp + 4], 0x18
mov dword [esp], edi
call fcn.004439c0
mov ebx, eax
jmp 0x4308db
xor edx, edx
jmp 0x430926
mov edx, ebp
mov eax, edi
call fcn.0042dab0
movzx ecx, word [ebp + 0x14]
mov edx, ecx
shr dx, 6
test dl, 0x10
jne 0x430dd9
test dl, 4
jne 0x430d49
test dh, 1
jne 0x43102e
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x30], eax
movzx eax, word [eax + 0x10]
cmp ax, word [ebx + 0x10]
jne 0x430dd9
mov esi, dword [esp + 0x30]
movzx ecx, byte [esi + 0x14]
xor cl, byte [ebx + 0x14]
and ecx, 3
jne 0x430dd9
test eax, eax
mov dword [esp + 0x3c], eax
je 0x430f31
mov ecx, dword [esi]
mov eax, dword [ebx]
mov esi, dword [ecx]
cmp dword [eax], esi
jne 0x430dd9
mov word [esp + 0x3a], dx
xor esi, esi
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x3c]
jmp 0x430f21
mov ebx, dword [eax + esi*4]
cmp dword [ecx + esi*4], ebx
jne 0x431263
add esi, 1
cmp esi, edx
jne 0x430f15
movzx edx, word [esp + 0x3a]
mov ebx, dword [esp + 0x34]
cmp byte [edi + 0x262], 0
jne 0x4312c5
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebx + 0xc]
jne 0x430dd9
xor esi, esi
test eax, eax
jne 0x430f70
jmp 0x43102e
mov eax, dword [esp + 0x30]
add esi, 1
cmp dword [eax + 0xc], esi
jbe 0x430e65
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 0x30]
mov eax, esi
shl eax, 4
add edx, eax
mov dword [esp + 4], edx
add eax, dword [ecx + 4]
mov dword [esp], eax
call fcn.00441060
test eax, eax
jne 0x430f60
movzx edx, word [ebp + 0x14]
shr dx, 6
jmp 0x430dd9
cmp al, 0x36
je 0x4311da
jbe 0x4311d2
cmp al, 0x3d
jne 0x43103a
mov eax, dword [esi + 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], edi
call fcn.00436be0
jmp 0x430aa0
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
shl eax, 4
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x430c58
mov dword [esp + 8], str.ISO_C99_requires_whitespace_after_the_macro_name
mov dword [esp + 4], 2
mov dword [esp], edi
call fcn.00436be0
jmp 0x430aa0
movzx eax, byte [ebp + 0x14]
and eax, 0x3f
jmp 0x43099b
cmp al, 0x43
je 0x4311da
xor eax, eax
jmp 0x430fd6
mov dword [esp + 8], str.missing___in_macro_parameter_list
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.00436be0
mov eax, dword [edi + 0x24]
mov byte [esp + 0x2c], 0
mov eax, dword [eax + 8]
mov dword [ebx], eax
jmp 0x430d13
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x4312fb
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc], edx
mov eax, dword [eax + 8]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00430780
test al, al
jne 0x43105e
mov dword [esp + 0x2c], 1
jmp 0x430da2
mov eax, dword [esp + 0x2c]
or byte [ebx + 0x14], 2
test eax, eax
je 0x431200
cmp byte [edi + 0x25c], 0
je 0x4310ee
cmp byte [edi + 0x252], 0
je 0x4310ee
cmp byte [edi + 0x23c], 0
je 0x4312a8
mov dword [esp + 8], 0x4d6c68
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.00436c60
mov dword [esp], edi
call fcn.00443790
cmp byte [eax + 4], 0x15
jne case.0x430dbd.3
movzx eax, word [ebx + 0x10]
mov ecx, dword [edi + 0x24]
mov edx, dword [ecx + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x228]
mov dword [ebx], edx
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x4311f1
shl eax, 2
mov dword [esp], eax
call ecx
mov edx, eax
movzx eax, word [ebx + 0x10]
mov ecx, dword [ebx]
mov dword [esp], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 4], ecx
shl eax, 2
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x2c]
mov dword [ebx], edx
or byte [ebx + 0x14], 1
jmp 0x430aa0
mov ecx, dword [esp + 0x2c]
movzx eax, word [ebx + 0x10]
test ecx, ecx
jne 0x431104
test ax, ax
je 0x431104
mov dword [esp + 8], str.parameter_name_missing
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.00436be0
jmp 0x43105e
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x430d9a
jmp 0x431168
cmp cl, 0x4f
jne 0x4311a5
cmp byte [edi + 0x240], 0
je 0x430da2
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004426e0
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], edi
call fcn.00436be0
jmp 0x43105e
cmp al, 0x34
jne 0x431042
mov eax, 2
jmp 0x430fd6
movzx edx, word [ebp + 0x14]
shr dx, 6
jmp 0x430ebc
mov ecx, dword [esp + 0x2c]
lea eax, [edx + eax*4]
mov dword [ecx + 8], eax
jmp 0x43114e
mov eax, dword [edi + 0x2ac]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
call fcn.00430780
cmp byte [edi + 0x25a], 0
mov byte [edi + 0xe], 1
jne 0x431271
cmp byte [edi + 0x25c], 0
je 0x431271
cmp byte [edi + 0x252], 0
je 0x431271
cmp byte [edi + 0x23c], 0
je 0x4312de
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C11
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.00436c60
jmp 0x4310ee
mov ebx, dword [esp + 0x34]
movzx edx, word [esp + 0x3a]
jmp 0x430dd9
cmp byte [edi + 0x27e], 0
jle 0x4310ee
cmp byte [edi + 0x23c], 0
jne 0x4310ee
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C99
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00436be0
jmp 0x4310ee
mov dword [esp + 8], str.ISO_C_does_not_permit_named_variadic_macros
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.00436c60
jmp 0x4310ee
mov eax, dword [esp + 0x30]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00432e60
movzx ecx, word [ebp + 0x14]
jmp 0x430d72
mov dword [esp + 8], str.anonymous_variadic_macros_were_introduced_in_C99
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.00436c60
jmp 0x4310ee
mov dword [esp + 8], str.macro_parameters_must_be_comma_separated
mov dword [esp + 4], 3
mov dword [esp], edi
call fcn.00436be0
jmp 0x43105e