Function at 0x40ae30
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
imul eax, dword [0x4358c8], 0x6710b056
sub esp, 0x18
inc dword [0x4358c8]
cmp eax, 0x5dbe4730
jge 0x40ae79
mov ecx, dword [0x435db0]
movsx eax, word [0x43e50a]
not ecx
and eax, ecx
cmp eax, 0xffd6ffcb
jg 0x40ae83
mov eax, dword [0x435fc4]
mov ecx, 0x470df74b
sub ecx, eax
and dword [0x437400], ecx
jmp 0x40ae83
mov dword [0x439634], 0xee873bdc
inc word [0x4426d0]
mov ax, word [0x4426d0]
cwde
cmp eax, 0x4852645d
jne 0x40aeae
cmp dword [0x434ba0], 0xd9e17ed9
jne 0x40aeae
or dword [0x4372e0], 0xfe752f74
movsx eax, word [0x43e2f6]
or eax, 0xd33fa01b
cmp eax, 0x80b26241
jg 0x40aee3
mov ecx, dword [0x43593c]
movsx eax, word [0x441c20]
sar ecx, 1
and eax, ecx
cmp eax, 0x8039044a
je 0x40aee3
or dword [0x4361c4], 0xd4514076
and dword [0x439bdc], 0xc7992d7d
movzx eax, word [0x43fd0e]
and eax, 0x76a63190
push ebx
mov word [0x43fd0e], ax
movsx eax, word [0x4421ea]
push esi
push edi
sar eax, 3
xor esi, esi
add eax, 0xe4b66c31
and dword [0x434fe0], eax
push 0x41
push 0x881
call fcn.00406b20
push 4
mov dword [0x43b720], 0xd62aa09
push 0x20bc
mov dword [ebp - 0xc], eax
call fcn.00406b20
mov ecx, dword [0x436c18]
mov edi, eax
lea eax, [ebp - 0x10]
not ecx
push edi
mov dword [0x437504], ecx
push eax
call fcn.004206d0
xor dword [0x43c9d0], 0xa699606c
push 4
push 0x397a
call fcn.00406b20
add esp, 0x20
mov ebx, eax
cmp dword [0x4399f0], 0xe1317df1
jl 0x40af89
add dword [0x43ad4c], 0x8c2563d5
push edi
push 4
call fcn.004279d0
dec dword [0x436384]
mov eax, dword [0x436384]
or eax, 0x765300af
imul eax, dword [0x434530]
push ebx
mov dword [0x434530], eax
lea eax, [ebp - 0x14]
push eax
call fcn.004206d0
or dword [0x437fb8], 0x949654f0
push 4
push 0x1664
call fcn.00406b20
movsx ecx, word [0x43f7f2]
mov edi, eax
movzx edx, word [0x43ecaa]
shl ecx, 3
or edx, ecx
or edx, 0x9632fce6
push ebx
mov word [0x43ecaa], dx
push 4
call fcn.004279d0
add dword [0x438ca4], 0x8ae36a45
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.004206d0
movsx eax, word [0x4425a0]
add esp, 0x28
cmp eax, 0x64b8cac2
je 0x40b039
imul ecx, dword [0x435aec], 0x4369e208
mov eax, dword [0x43cb9c]
xor ecx, 0xffa523f0
imul eax, ecx
mov dword [0x43cb9c], eax
push edi
push 4
call fcn.004279d0
xor dword [0x435a50], 0x6e7ffd9f
add esp, 8
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
test edi, edi
je 0x40b39b
lea esp, [esp]
add dword [0x4374dc], 0x69c99f0f
dec edi
xor dword [0x43d100], 0x93e56f2b
mov ecx, dword [ebp + 8]
mov dword [ebp + 0xc], edi
mov al, byte [ecx]
inc ecx
mov byte [ebp + esi - 4], al
inc esi
mov eax, dword [0x43bda4]
sub eax, 0x1c1945f2
mov dword [ebp + 8], ecx
and eax, 0xb32c2772
sub dword [0x43c400], eax
movzx eax, word [0x441760]
sub eax, 0x7a909dcd
mov word [0x441760], ax
movzx eax, word [0x43f46a]
xor eax, 0x64cf0e85
mov word [0x43f46a], ax
cmp esi, 3
jne 0x40b31a
imul eax, dword [0x43796c], 0x9bdcae32
xor eax, 0xfe8b8a02
add dword [0x434edc], eax
movzx eax, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
or dword [0x434970], 0x847ce7ed
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
movsx eax, word [0x43fd6e]
mov ecx, dword [0x434b14]
shl eax, 9
not ecx
sub ecx, eax
mov eax, dword [0x43844c]
add eax, 0x6703d30b
add eax, ecx
mov dword [0x43844c], eax
movzx eax, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
dec dword [0x43b480]
mov eax, dword [0x43b480]
cmp eax, 0x4a4f282e
jg 0x40b153
mov eax, dword [0x43a824]
or eax, dword [0x435bcc]
or eax, 0xd65394ba
mov dword [0x435bcc], eax
movzx eax, byte [ebp - 3]
xor esi, esi
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
add dword [0x43c754], 0x81740ca5
movzx eax, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
or dword [0x438ddc], 0x7ae5c7be
movzx eax, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
mov dword [0x43b64c], 0x35ca5264
movsx eax, word [0x43fe8a]
sar eax, 1
or eax, 0x820450ef
cmp eax, 0x7dfb8436
je 0x40b1b1
xor dword [0x43a9fc], 0x2c85f7b2
mov edi, dword [ebp - 0xc]
jmp 0x40b1c0
add dword [0x43a458], 0xbff69dd7
cmp byte [ebp + 0x10], 0
je 0x40b26f
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x40b26f
dec dword [0x43cfb8]
mov eax, dword [0x43cfb8]
xor dword [0x4390b0], eax
cmp cl, 0x3e
jne 0x40b230
mov ecx, dword [0x4362a4]
movzx eax, word [0x43ebee]
xor ecx, 0xdbef248d
sub eax, ecx
mov ecx, ebx
mov word [0x43ebee], ax
lea eax, [ebp - 0x10]
dec dword [0x4362a4]
push eax
call fcn.00411ad0
mov eax, 0xffffd7db
mov word [0x441f70], ax
jmp 0x40b25b
mov eax, dword [0x43949c]
mov ecx, ebx
or eax, 0x10062a20
xor dword [0x4378e4], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00411ad0
mov eax, dword [0x43a33c]
add eax, 0x217c6994
xor dword [0x4341f0], eax
mov eax, dword [0x43c2fc]
sar eax, 8
add eax, 0x70dd06d1
mov dword [0x438ea0], eax
jmp 0x40b29c
and dword [0x434e18], 0x5ffeb9c3
mov ecx, ebx
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + edi]
push eax
call fcn.00407900
movzx eax, word [0x43f1d0]
xor eax, 0xd200b2e4
mov word [0x43f1d0], ax
mov eax, dword [0x43514c]
inc esi
movsx ecx, word [0x441f9c]
add eax, 0xcb5e9646
not ecx
and ecx, eax
xor dword [0x436a4c], ecx
imul eax, dword [0x438a50], 0x2e6abb03
and eax, 0x98c18e8a
cmp eax, 0xd1746810
jl 0x40b2e1
movzx eax, word [0x43f6d8]
imul eax, eax, 0xc22a6cd8
mov word [0x43f6d8], ax
cmp esi, 4
jne 0x40b1c0
imul eax, dword [0x434800], 0x56f4f867
dec dword [0x434800]
mov edi, dword [ebp + 0xc]
cmp eax, 0x30baee2a
jge 0x40b30e
mov dword [0x4361f0], 0xec4dab7e
xor esi, esi
mov dword [0x43632c], 0xa94dc5aa
movsx eax, word [0x43df4c]
mov ecx, dword [0x434fec]
dec dword [0x434fec]
sub ecx, 0x6c5b785a
shl eax, 2
or ecx, eax
cmp ecx, 0x8fcdd39d
jg 0x40b359
cmp dword [0x43af50], 0xa0b35222
jne 0x40b393
mov eax, dword [0x434cb0]
dec dword [0x434cb0]
jmp 0x40b393
dec dword [0x43760c]
mov ecx, dword [0x43760c]
movsx eax, word [0x442100]
sar eax, 9
sub ecx, eax
mov eax, dword [0x43ba14]
sar eax, 9
sub ecx, eax
cmp ecx, 0xcbafe8d1
jl 0x40b393
mov eax, dword [0x43ad5c]
mov eax, dword [0x43878c]
dec dword [0x43ad5c]
test edi, edi
jne 0x40b060
mov eax, dword [0x4397cc]
or eax, 0xffebfe6f
cmp eax, 0x6ffcebf9
jle 0x40b3bb
imul eax, dword [0x436280], 0x339e7d94
mov dword [0x436280], eax
test esi, esi
je 0x40b7bc
mov eax, dword [0x43c2a8]
not eax
add dword [0x43badc], eax
and dword [0x435fdc], 0x334708f9
cmp esi, 3
jge 0x40b433
mov ebx, 3
lea edi, [ebp - 4]
sub ebx, esi
add edi, esi
mov ecx, ebx
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ecx]
xor dword [0x4345f8], 0xaa77846d
movzx eax, word [0x43fb3c]
and eax, 0x90829ea7
mov word [0x43fb3c], ax
mov eax, dword [0x4360a0]
imul eax, dword [0x4354ac]
mov dword [0x4360a0], eax
dec ebx
jne 0x40b400
mov ebx, dword [ebp + 0x14]
and dword [0x435060], 0x3ec50b54
xor edi, edi
movzx eax, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
mov eax, dword [0x43815c]
or eax, 0x667e4fcf
mov dword [0x43d768], eax
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
imul eax, dword [0x43921c], 0xc5640651
mov dword [0x43921c], eax
movzx eax, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
add dword [0x43d308], 0xa0082009
movzx eax, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
movzx eax, word [0x43f9b0]
add eax, 0x4148b5e5
mov word [0x43f9b0], ax
movzx eax, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
add dword [0x43d5ac], 0x9dfd9bbc
movzx eax, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
or dword [0x437910], 0xf8304abd
mov eax, dword [0x43880c]
inc dword [0x43880c]
cmp eax, 0xff5ff66d
jle 0x40b4f0
add dword [0x439238], 0xfe1201c7
jmp 0x40b4f0
mov eax, dword [0x4341c0]
movsx ecx, word [0x441b5c]
shl eax, 5
xor ecx, eax
mov eax, dword [0x43bedc]
xor eax, ecx
cmp eax, 0x42c980e4
jne 0x40b530
mov ecx, dword [0x438b4c]
movzx eax, word [0x440b36]
add ecx, 0x2c21e7bd
xor ecx, 0x8d4a6a4
sub eax, ecx
mov word [0x440b36], ax
cmp edi, esi
jg 0x40b680
inc dword [0x43c550]
mov eax, dword [0x43c550]
or eax, 0x82e7edf9
imul eax, dword [0x43d780]
cmp byte [ebp + 0x10], 0
mov dword [0x43d780], eax
je 0x40b62e
mov cl, byte [ebp + edi - 8]
cmp cl, 0x3d
jbe 0x40b62e
mov eax, dword [0x435d00]
not eax
mov dword [0x43601c], eax
cmp cl, 0x3e
jne 0x40b5dc
inc dword [0x434338]
mov eax, dword [0x434338]
cmp eax, 0x7bd8d1fd
jg 0x40b5bc
cmp dword [0x438f08], 0x210e0920
jne 0x40b5b2
mov ax, word [0x44260e]
mov ecx, dword [0x439268]
cwde
add ecx, eax
mov word [0x44260e], cx
jmp 0x40b5bc
add dword [0x438ab8], 0x2f5f0ce7
lea eax, [ebp - 0x10]
mov ecx, ebx
push eax
call fcn.00411ad0
mov eax, dword [0x43c7e0]
not eax
imul eax, eax, 0xd20c6908
and dword [0x43b5a4], eax
jmp 0x40b606
or dword [0x43d878], 0xa627a787
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.00411ad0
imul eax, dword [0x437aa8], 0x2a81e00
and eax, 0x54a1ea16
xor dword [0x438378], eax
dec dword [0x4394d8]
mov eax, dword [0x4394d8]
add eax, 0x6fe91edf
xor eax, 0x54a5be20
cmp eax, 0xdf28f8bf
je 0x40b666
xor dword [0x43b614], 0xad32ee82
jmp 0x40b666
movzx eax, word [0x440e56]
mov ecx, dword [ebp - 0xc]
add eax, 0x66970a32
mov word [0x440e56], ax
movzx eax, byte [ebp + edi - 8]
movzx eax, byte [eax + ecx]
mov ecx, ebx
push eax
call fcn.00407900
movsx eax, word [0x43ff7e]
xor eax, 0x69628718
sub dword [0x43440c], eax
mov dword [0x435e44], 0x5e390a31
inc edi
add dword [0x438e50], 0xed4bd956
jmp 0x40b4f0
mov ecx, dword [0x43923c]
mov eax, dword [0x4341ac]
sub ecx, 0x51771c3
or ecx, 0x9be4808c
imul eax, ecx
mov dword [0x4341ac], eax
inc dword [0x43923c]
cmp esi, 3
jge 0x40b785
mov edi, 3
sub edi, esi
dec dword [0x43c7b8]
mov eax, dword [0x43c7b8]
movsx ecx, word [0x43e7f4]
or ecx, eax
mov eax, dword [0x4357fc]
imul eax, ecx
mov dword [0x4357fc], eax
dec dword [0x43ce9c]
mov ecx, dword [0x43ce9c]
mov eax, dword [0x43c324]
add eax, 0x68caaab9
add eax, ecx
cmp byte [ebp + 0x10], 0
mov dword [0x43c324], eax
je 0x40b74c
imul eax, dword [0x43c4dc], 0xc5e7c787
cmp eax, 0xc822a916
jle 0x40b728
movsx ecx, word [0x43e0fe]
mov eax, dword [0x436440]
not ecx
and eax, ecx
add dword [0x43bac4], eax
dec dword [0x436440]
jmp 0x40b735
mov eax, dword [0x43d294]
not eax
add dword [0x43d55c], eax
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.00411ad0
mov dword [0x43bee4], 0xf0a648b2
jmp 0x40b774
mov eax, dword [0x435b60]
mov ecx, ebx
and eax, 0x77a71373
mov dword [0x438230], eax
dec dword [0x435b60]
push 0x3d
call fcn.00407900
add dword [0x436108], 0x697a46d7
mov dword [0x434fe4], 0xe7db86cd
dec edi
jne 0x40b6b5
dec word [0x43fe78]
mov ax, word [0x43fe78]
cwde
cmp eax, 0xdf378cc4
jne 0x40b7bc
dec dword [0x43d2e8]
mov eax, dword [0x43d2e8]
cmp eax, 0x461129bb
jne 0x40b7bc
mov eax, dword [0x43bb24]
add eax, dword [0x438dd0]
mov dword [0x43bb24], eax
push dword [ebp - 0xc]
add dword [0x43c870], 0x30a42c1e
push 0x41
call fcn.004279d0
mov eax, dword [0x434174]
movzx ecx, word [0x43e692]
not eax
imul eax, eax, 0x7ea6b3de
push 4
push 0
sub ecx, eax
lea eax, [ebp - 0x10]
sub ecx, 0x2ebe587c
mov word [0x43e692], cx
push eax
call fcn.00410f40
push 4
lea eax, [ebp - 0x14]
mov dword [0x4341ec], 0x4a30fff8
push 0
push eax
call fcn.00410f40
and dword [0x436d38], 0x1773ff5b
lea eax, [ebp - 0x18]
push 4
push 0
push eax
call fcn.00410f40
movsx eax, word [0x43eca2]
add esp, 0x2c
mov ecx, 0x45d2d990
sub ecx, eax
movsx eax, word [0x43f468]
inc word [0x43eca2]
add eax, 0x3b0d9b17
pop edi
pop esi
pop ebx
cmp ecx, eax
jle 0x40b869
mov eax, dword [0x43a288]
and eax, 0x5e04aa5a
xor dword [0x43cdc8], eax
mov esp, ebp
pop ebp
ret