Function at 0x401110
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x435104]
sub esp, 0x1c
not eax
xor eax, 0x6844e80d
cmp eax, 0x3fbe1ff5
jge 0x40113e
movzx eax, word [0x436e0e]
imul eax, eax, 0xfccfffbf
mov word [0x436e0e], ax
jmp 0x401160
mov eax, dword [0x435590]
mov ecx, dword [0x436254]
sar eax, 8
add ecx, eax
or ecx, 0x190dc69
xor dword [0x435a0c], ecx
inc dword [0x436254]
mov eax, dword [0x4351e4]
sar eax, 0xa
cmp eax, 0xaf6ea01b
jle 0x401182
movzx eax, word [0x436882]
imul eax, eax, 0xf7d9faef
mov word [0x436882], ax
add dword [0x436344], 0xb4a396cb
mov ecx, 0x57728400
mov eax, dword [0x435be0]
sub ecx, eax
mov word [0x436e94], cx
mov eax, dword [0x435784]
push ebx
sub eax, 0x19997b3
and eax, 0xe0eae4d
sub dword [0x4362a8], eax
dec dword [0x435784]
push esi
push edi
xor edi, edi
cmp dword [0x4365ac], 0xeadd0f2c
mov dword [ebp - 0xc], edi
jle 0x4011ef
mov eax, dword [0x4352bc]
sub eax, 0x2a298310
and eax, 0xfca57b12
cmp eax, dword [0x43572c]
jg 0x4011ef
or dword [0x43664c], 0xd3674c7f
push 0x41
push 0x24d2
call fcn.00407380
mov ecx, dword [0x435c98]
and ecx, dword [0x43578c]
push 4
mov dword [0x43578c], ecx
push 0x216b
mov dword [ebp - 0x10], eax
call fcn.00407380
and dword [0x4354e0], 0x61a57b37
mov ebx, eax
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00419a20
movsx ecx, word [0x436ad4]
add esp, 0x18
cmp ecx, 0x56811b45
jge 0x401265
inc dword [0x435e10]
mov ecx, dword [0x435e10]
movzx eax, word [0x436be8]
and ecx, 0x63269220
sub eax, ecx
mov word [0x436be8], ax
push 4
push 0xf98
call fcn.00407380
inc dword [0x435bbc]
mov esi, eax
mov ecx, dword [0x435bbc]
imul ecx, ecx, 0xc46428
push ebx
push 4
or ecx, 0xfd6c33b5
and ecx, dword [0x435cb0]
mov dword [0x435cb0], ecx
call fcn.0040fdc0
add dword [0x43613c], 0x468e4b01
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.00419a20
mov ax, word [0x436d84]
cwde
add dword [0x435afc], eax
push 4
push 0x214d
call fcn.00407380
or dword [0x435b74], 0xa1077632
mov ebx, eax
push esi
push 4
call fcn.0040fdc0
movsx ecx, word [0x43699e]
lea eax, [ebp - 0x1c]
mov edx, dword [0x4354f4]
add ecx, 0x9f10f20d
xor edx, ecx
xor edx, 0x2c086ba8
push ebx
mov dword [0x4354f4], edx
push eax
call fcn.00419a20
inc dword [0x436644]
add esp, 0x30
mov ecx, dword [0x436644]
movsx eax, word [0x436b1a]
and ecx, 0x62f79311
xor ecx, eax
cmp ecx, 0x215333e8
jle 0x40133b
and dword [0x435d18], 0xd1872b49
push ebx
push 4
call fcn.0040fdc0
or dword [0x4359e0], 0x1d069b9e
add esp, 8
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
test edx, edx
je 0x401690
mov edi, edi
movsx ecx, word [0x436be2]
dec edx
mov eax, dword [0x435cc4]
or ecx, 0x40777afd
imul eax, ecx
mov ecx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
mov dword [0x435cc4], eax
mov eax, dword [0x436504]
shl eax, 3
xor eax, 0x5d05d252
mov dword [0x435c20], eax
mov al, byte [ecx]
inc ecx
mov byte [ebp + edi - 4], al
inc edi
movzx eax, word [0x436b6e]
cwde
add dword [0x435c38], eax
dec word [0x436ef0]
movzx eax, word [0x436ef0]
cwde
add eax, dword [0x436260]
mov dword [0x436260], eax
mov eax, dword [0x4360f4]
and eax, 0x7cf40cd9
mov dword [ebp + 8], ecx
xor dword [0x435270], eax
cmp edi, 3
jne 0x40167b
movzx eax, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
mov dword [0x435fc4], 0xdedfe7f5
add dword [0x435f90], 0xfbe7ffff
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
add dword [0x435d2c], 0xd9aa11bb
movzx eax, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
add dword [0x4358e0], 0xffafff5b
mov cl, byte [ebp - 3]
movzx eax, byte [ebp - 2]
and cl, 0xf
shl cl, 2
mov byte [ebp - 6], cl
shr al, 6
add cl, al
mov dword [0x43524c], 0x441a24e5
mov eax, dword [0x4352e0]
mov byte [ebp - 6], cl
inc dword [0x4352e0]
cmp eax, 0xa3c46380
jl 0x401465
mov dword [0x435060], 0x670a2d97
mov al, byte [ebp - 2]
mov ecx, 0x386f3613
and al, 0x3f
xor esi, esi
mov byte [ebp - 5], al
movzx eax, word [0x436baa]
or eax, 0xedc119eb
mov word [0x436baa], ax
mov eax, dword [0x435c50]
sub ecx, eax
cmp ecx, 0xbc7f5a37
jge 0x4014cf
mov ecx, dword [0x43666c]
mov eax, dword [0x435f90]
not ecx
or eax, ecx
or eax, 0xbd04b558
cmp eax, 0x17cfdadf
jge 0x4014e0
mov ecx, dword [0x4361e4]
movzx eax, word [0x437158]
sar ecx, 5
sub eax, ecx
sub eax, 0x7d27c8ae
mov word [0x437158], ax
jmp 0x4014e0
xor dword [0x4357f0], 0x70094adf
lea esp, [esp]
movsx ecx, word [0x436b7e]
mov eax, dword [0x435ac8]
add eax, eax
sar ecx, 4
and eax, ecx
xor eax, 0xb31fc9fd
cmp eax, 0x9a897f1c
je 0x401539
mov ax, word [0x436892]
mov ecx, dword [0x435098]
inc dword [0x435098]
cwde
or ecx, eax
cmp ecx, 0x10268440
jne 0x401543
inc dword [0x436374]
mov eax, dword [0x436374]
xor eax, 0x709505a4
or eax, dword [0x4364d4]
mov dword [0x4364d4], eax
jmp 0x401543
mov dword [0x436704], 0xa2863e3f
cmp byte [ebp + 0x10], 0
je 0x4015f8
mov dl, byte [ebp + esi - 8]
cmp dl, 0x3d
jbe 0x4015f8
mov ax, word [0x436d0a]
mov ecx, dword [0x43624c]
cwde
xor ecx, eax
mov word [0x436d0a], cx
cmp dl, 0x3e
jne 0x4015bc
imul eax, dword [0x4363c0], 0x628672c9
mov ecx, ebx
mov dword [0x4363c0], eax
lea eax, [ebp - 0x14]
push eax
call fcn.0042d940
movsx eax, word [0x436838]
mov ecx, dword [0x435cd8]
imul eax, eax, 0x451c3517
sub ecx, eax
mov eax, dword [0x4353cc]
add eax, ecx
mov dword [0x435cd8], eax
mov dword [0x4362bc], 0x2b36db40
jmp 0x401628
mov eax, dword [0x435988]
sub eax, 0x4cbc34b8
cmp eax, 0xbe587569
jne 0x4015d7
add dword [0x4363e8], 0x7dcd5acb
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.0042d940
add dword [0x435054], 0xaac5768f
mov dword [0x4362bc], 0x2b36db40
jmp 0x401628
movzx eax, word [0x436ce2]
mov ecx, dword [ebp - 0x10]
sub eax, 0x16fb211
mov word [0x436ce2], ax
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + ecx]
mov ecx, ebx
push eax
call fcn.0041db60
and dword [0x4354bc], 0x8cfa7ac0
add dword [0x435ccc], 0x239085ef
inc esi
mov eax, dword [0x435854]
xor eax, 0x2a693810
mov word [0x436e70], ax
inc dword [0x435854]
cmp esi, 4
jne 0x4014e0
xor dword [0x435e74], 0x91a08c4
xor edi, edi
mov eax, dword [0x4364cc]
movzx ecx, word [0x4367d2]
add eax, 0x645b385d
mov edx, dword [ebp + 0xc]
or ecx, eax
mov word [0x4367d2], cx
and dword [0x435840], 0x43ce1828
test edx, edx
jne 0x401360
mov dword [ebp - 0xc], edi
mov dword [0x43550c], 0xfa26dafa
test edi, edi
je 0x401b5a
movsx ecx, word [0x436c88]
movzx eax, word [0x436ef6]
sub ecx, 0xffe4a85
or ecx, 0x62a15d7e
imul eax, ecx
mov word [0x436ef6], ax
and dword [0x435e50], 0x2a919caa
cmp edi, 3
jge 0x40174f
lea ecx, [ebp - 4]
mov esi, 3
sub esi, dword [ebp - 0xc]
add edi, ecx
mov ecx, esi
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
jmp 0x401700
add dword [0x435718], 0xf95b0000
mov ecx, 0x17abbdf5
mov eax, dword [0x436604]
sub ecx, eax
cmp ecx, dword [0x435f14]
jl 0x40173f
mov ax, word [0x436ee8]
movsx ecx, ax
mov eax, dword [0x435470]
add eax, 0x7317bb45
add eax, ecx
mov dword [0x435470], eax
inc word [0x436ee8]
add dword [0x43644c], 0xf8123674
dec esi
jne 0x401700
mov edi, dword [ebp - 0xc]
movzx eax, word [0x436ce0]
sub eax, 0x486a5a3a
mov word [0x436ce0], ax
mov al, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
inc dword [0x435994]
mov eax, dword [0x435994]
mov ecx, dword [0x4366d4]
inc dword [0x4366d4]
imul ecx, eax
cmp ecx, 0xfdb905a0
je 0x4017ad
mov eax, dword [0x4360ec]
xor eax, 0x4bcb7039
cmp eax, 0xf3546fec
jl 0x4017ad
mov eax, dword [0x43563c]
add eax, 0xf7477e73
xor dword [0x43542c], eax
mov al, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
movsx eax, word [0x436dce]
cmp eax, 0xfc05e5eb
jle 0x4017e0
mov eax, dword [0x436138]
sar eax, 8
imul eax, eax, 0xc399c168
cmp eax, 0x33e5fba7
jge 0x4017e0
mov eax, dword [0x436618]
movzx eax, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
mov eax, dword [0x4357b4]
or eax, 0xec6e1356
sub dword [0x435a88], eax
movzx eax, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
movsx eax, word [0x436eee]
shl eax, 0xa
or eax, 0xf9bfffff
cmp eax, 0x974343e6
jle 0x401859
mov eax, dword [0x4360d8]
inc dword [0x4360d8]
add eax, 0x122078f8
or eax, 0xdd6fba55
cmp eax, 0xd894c0a5
jg 0x40186b
movsx ecx, word [0x4369ba]
movzx eax, word [0x436f54]
sar ecx, 5
or ecx, 0xc430f857
xor eax, ecx
mov word [0x436f54], ax
jmp 0x40186b
movzx eax, word [0x436bb0]
and eax, 0x67db8959
mov word [0x436bb0], ax
movzx eax, byte [ebp - 2]
xor esi, esi
shr al, 6
add byte [ebp - 6], al
movzx eax, word [0x4369f8]
sub eax, 0xa8b8518
mov word [0x4369f8], ax
movzx eax, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
mov eax, 0xac0
add dword [0x435314], 0x86fbba05
mov word [0x436f10], ax
movzx eax, word [0x43678c]
add eax, 0x76f23386
mov word [0x43678c], ax
test edi, edi
js 0x401a29
mov ecx, dword [0x436450]
mov eax, dword [0x436010]
inc eax
add eax, ecx
or eax, 0x451b1d49
cmp byte [ebp + 0x10], 0
mov dword [0x4361ac], eax
je 0x4019b6
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x4019b6
movsx eax, word [0x436c36]
add eax, 0xb145c521
add dword [0x4358fc], eax
cmp cl, 0x3e
mov ecx, ebx
jne 0x40194c
dec word [0x436774]
movzx eax, word [0x436774]
cwde
xor eax, 0x2b9c9d29
imul eax, dword [0x435d90]
mov dword [0x435d90], eax
lea eax, [ebp - 0x14]
push eax
call fcn.0042d940
movzx eax, word [0x436df8]
mov ecx, dword [0x435978]
cwde
imul ecx, eax
mov word [0x436df8], cx
jmp 0x401969
lea eax, [ebp - 0x18]
mov dword [0x4366e0], 0x452c3ec5
push eax
call fcn.0042d940
xor dword [0x43551c], 0xeb7a3e92
inc dword [0x435094]
mov eax, dword [0x435094]
imul eax, eax, 0x6e812df2
cmp eax, 0xe3fe1d8e
jge 0x401992
imul eax, dword [0x436600], 0xff69caa8
mov dword [0x436600], eax
jmp 0x4019e9
mov ecx, dword [0x4359fc]
mov eax, dword [0x435468]
shl ecx, 9
add ecx, 0xc6ed0f
or ecx, 0xe69ba78e
imul eax, ecx
mov dword [0x435468], eax
jmp 0x4019e9
mov eax, dword [0x436398]
and eax, dword [0x435788]
mov ecx, dword [ebp - 0x10]
and eax, 0x800c4009
mov dword [0x436398], eax
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + ecx]
mov ecx, ebx
push eax
call fcn.0041db60
add dword [0x435a04], 0xdddff9bc
add dword [0x43580c], 0x78c1fed7
inc esi
mov eax, dword [0x435a7c]
movzx ecx, word [0x436c50]
add eax, 0xf0384756
imul ecx, eax
mov word [0x436c50], cx
movzx eax, word [0x43678c]
add eax, 0x76f23386
mov word [0x43678c], ax
cmp esi, edi
jle 0x4018c1
mov eax, dword [0x435310]
xor eax, 0xab4bc82f
add dword [0x436000], eax
cmp edi, 3
jge 0x401b4a
mov esi, 3
sub esi, edi
lea esp, [esp]
movzx eax, word [0x436f5c]
or eax, 0x6c2be842
mov word [0x436f5c], ax
dec dword [0x4355bc]
mov ecx, dword [0x4355bc]
mov eax, dword [0x436160]
sub ecx, eax
cmp ecx, 0x53d8eb7a
jg 0x401a87
or dword [0x435150], 0xdbf12c61
cmp byte [ebp + 0x10], 0
je 0x401ac7
cmp dword [0x4358f8], 0x74085d5a
jg 0x401ab0
imul eax, dword [0x435ba8], 0x7a9578b8
mov ecx, 0xadef88be
sub ecx, eax
add dword [0x435270], ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.0042d940
add dword [0x4358a8], 0xd11cd263
jmp 0x401af4
add dword [0x4353d4], 0x4da3fae3
mov ecx, ebx
push 0x3d
call fcn.0041db60
movsx eax, word [0x436c90]
not eax
cmp eax, 0x64379337
jge 0x401af4
and dword [0x4363f0], 0xdf3d4a61
cmp dword [0x4354e0], 0x6071b7da
jg 0x401b14
movzx eax, word [0x4371ca]
add eax, 0x7e4ec618
mov word [0x4371ca], ax
jmp 0x401b43
mov eax, dword [0x436614]
movsx ecx, word [0x43693e]
sar eax, 9
add ecx, eax
mov eax, dword [0x435934]
xor ecx, 0x46fd5c95
or eax, 0x4df42efd
cmp eax, ecx
jge 0x401b43
add dword [0x436528], 0xe0f4f3f3
dec esi
jne 0x401a50
mov eax, dword [0x435964]
and eax, 0xe8d1f357
or dword [0x435c48], eax
push dword [ebp - 0x10]
add dword [0x43541c], 0xb1e3271d
push 0x41
call fcn.0040fdc0
imul eax, dword [0x43642c], 0xbba39d31
push 4
push 0
mov dword [0x4351b0], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00407b90
dec word [0x437144]
add esp, 0x14
mov ax, word [0x437144]
inc dword [0x43552c]
mov ecx, dword [0x43552c]
cwde
xor ecx, 0x31ac3a22
pop edi
sub eax, 0x62eb97fc
pop esi
pop ebx
cmp eax, ecx
jl 0x401bd2
mov ecx, dword [0x4353c4]
mov eax, dword [0x4352f0]
or ecx, eax
add dword [0x4366ec], ecx
inc dword [0x4353c4]
push 4
lea eax, [ebp - 0x18]
push 0
push eax
call fcn.00407b90
imul eax, dword [0x4358c0], 0x9628bbb3
push 4
push 0
mov dword [0x4358c0], eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00407b90
add esp, 0x18
and dword [0x4364b4], 0x8c3e3e6a
mov esp, ebp
pop ebp
ret