Function at 0x4fa064
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x11
push 0
push 0
dec ecx
jne 0x4fa06c
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405218
xor eax, eax
push ebp
push 0x4fa935
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x34], 0xffffffff
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x38]
mov ecx, 1
mov eax, 0x4fa94c
call fcn.004e9e74
mov edi, eax
test edi, edi
jns 0x4fa0c1
call fcn.00403d8c
test edi, edi
jne 0x4fa0ed
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x3c]
mov ecx, 1
mov eax, 0x4fa95c
call fcn.004e9e74
mov edi, eax
test edi, edi
jns 0x4fa0ed
call fcn.00403d8c
test edi, edi
jne 0x4fa119
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x40]
mov ecx, 1
mov eax, 0x4fa970
call fcn.004e9e74
mov edi, eax
test edi, edi
jns 0x4fa119
call fcn.00403d8c
test edi, edi
jle 0x4fa8d1
mov byte [ebp - 0x2d], 1
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x44]
mov ecx, edi
add ecx, 5
jno 0x4fa13f
call fcn.00403d94
test ecx, ecx
jns 0x4fa148
call fcn.00403d8c
mov eax, 0x4fa980
call fcn.004e9e74
test eax, eax
jns 0x4fa15b
call fcn.00403d8c
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4fa16a
mov byte [ebp - 0x2d], 0
jmp 0x4fa19b
mov ebx, edi
mov esi, dword [ebp - 0x24]
sub esi, 1
jno 0x4fa179
call fcn.00403d94
sub esi, ebx
jl 0x4fa19b
inc esi
mov ecx, 0x4fa984
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004ea518
test al, al
je 0x4fa197
mov byte [ebp - 0x2d], 0
jmp 0x4fa19b
inc ebx
dec esi
jne 0x4fa17e
cmp byte [ebp - 0x2d], 0
je 0x4fa218
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x24]
add ecx, 1
jno 0x4fa1bc
call fcn.00403d94
test ecx, ecx
jns 0x4fa1c5
call fcn.00403d8c
mov eax, 0x4fa980
call fcn.004e9e74
test eax, eax
jns 0x4fa1d8
call fcn.00403d8c
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4fa1e7
mov byte [ebp - 0x2d], 0
jmp 0x4fa218
mov ebx, edi
mov esi, dword [ebp - 0x24]
sub esi, 1
jno 0x4fa1f6
call fcn.00403d94
sub esi, ebx
jl 0x4fa218
inc esi
mov ecx, 0x4fa984
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004ea518
test al, al
je 0x4fa214
mov byte [ebp - 0x2d], 0
jmp 0x4fa218
inc ebx
dec esi
jne 0x4fa1fb
cmp byte [ebp - 0x2d], 0
je 0x4fa7ca
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
add ecx, 1
jno 0x4fa23d
call fcn.00403d94
test ecx, ecx
jns 0x4fa246
call fcn.00403d8c
mov eax, 0x4fa9ac
call fcn.004e9e74
test eax, eax
jns 0x4fa259
call fcn.00403d8c
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jle 0x4fa7ca
mov ebx, edi
mov esi, dword [ebp - 0x24]
sub esi, 1
jno 0x4fa275
call fcn.00403d94
sub esi, ebx
jl 0x4fa297
inc esi
mov ecx, 0x4fa984
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004ea518
test al, al
je 0x4fa293
mov byte [ebp - 0x2d], 0
jmp 0x4fa297
inc ebx
dec esi
jne 0x4fa27a
cmp byte [ebp - 0x2d], 0
je 0x4fa39f
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x24]
sub ecx, edi
jno 0x4fa2b1
call fcn.00403d94
add ecx, 2
jno 0x4fa2bb
call fcn.00403d94
mov edx, edi
mov eax, dword [ebp - 4]
call fcn.00405288
mov ebx, 1
mov edx, dword [ebp - 0x2c]
mov eax, 0x4fa980
call fcn.0040536c
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00405028
mov ecx, eax
sub ecx, dword [ebp - 0xc]
jno 0x4fa2f2
call fcn.00403d94
add ecx, 1
jno 0x4fa2fc
call fcn.00403d94
mov edx, dword [ebp - 0xc]
add edx, 1
jno 0x4fa309
call fcn.00403d94
mov eax, dword [ebp - 0x2c]
call fcn.00405288
cmp ebx, 1
jne 0x4fa342
lea eax, [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x4fa980
call fcn.0040536c
mov ecx, eax
sub ecx, 1
jno 0x4fa333
call fcn.00403d94
mov edx, 1
mov eax, dword [ebp - 0x2c]
call fcn.00405288
jmp 0x4fa35d
cmp ebx, 2
jne 0x4fa35d
lea eax, [ebp - 0x10]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x2c]
call fcn.00405288
inc ebx
cmp ebx, 4
jne 0x4fa2ca
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00405028
mov edx, eax
sub edx, 1
jno 0x4fa37f
call fcn.00403d94
mov ecx, 2
mov eax, dword [ebp - 0x2c]
call fcn.00405288
mov eax, dword [ebp - 0x50]
mov edx, 0x4fa9ac
call fcn.00405174
je 0x4fa39f
mov byte [ebp - 0x2d], 0
cmp dword [ebp - 0x34], 0
setge al
and al, byte [ebp - 0x2d]
je 0x4fa418
test edi, edi
jle 0x4fa418
mov byte [ebp - 0x2e], 1
mov ebx, dword [ebp - 0x34]
mov esi, edi
sub esi, 1
jno 0x4fa3c2
call fcn.00403d94
sub esi, ebx
jl 0x4fa3e4
inc esi
mov ecx, 0x4fa984
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004ea518
test al, al
jne 0x4fa3e0
mov byte [ebp - 0x2e], 0
jmp 0x4fa3e4
inc ebx
dec esi
jne 0x4fa3c7
cmp byte [ebp - 0x2e], 0
je 0x4fa418
mov ecx, edi
sub ecx, dword [ebp - 0x34]
jno 0x4fa3f6
call fcn.00403d94
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x34]
call fcn.004052c8
sub edi, dword [ebp - 0x34]
jno 0x4fa40b
call fcn.00403d94
sub dword [ebp - 0x24], edi
jno 0x4fa415
call fcn.00403d94
mov edi, dword [ebp - 0x34]
mov edx, 0x4fa9b8
mov eax, dword [ebp - 0x10]
call fcn.004ea500
and al, byte [ebp - 0x2d]
je 0x4fa5ea
mov ebx, 1
lea eax, [ebp - 0x18]
call fcn.00404d68
mov eax, dword [ebp - 0x2c]
dec ebx
test eax, eax
je 0x4fa448
cmp ebx, dword [eax - 4]
jb 0x4fa44d
call fcn.00403d8c
inc ebx
cmp byte [eax + ebx - 1], 0x5f
jne 0x4fa467
lea eax, [ebp - 0x18]
mov edx, 0x4fa9c4
call fcn.00405030
jmp 0x4fa593
mov eax, dword [ebp - 0x2c]
dec ebx
test eax, eax
je 0x4fa474
cmp ebx, dword [eax - 4]
jb 0x4fa479
call fcn.00403d8c
inc ebx
cmp byte [eax + ebx - 1], 0x3d
jne 0x4fa569
mov eax, dword [ebp - 0x2c]
call fcn.00405028
mov edx, ebx
add edx, 2
jno 0x4fa499
call fcn.00403d94
add edx, 2
jno 0x4fa4a3
call fcn.00403d94
cmp eax, edx
jl 0x4fa569
mov edx, 0x4fa9c8
lea eax, [ebp - 0x5c]
call fcn.00403184
lea eax, [ebp - 0x60]
mov edx, ebx
add edx, 1
jno 0x4fa4c7
call fcn.00403d94
mov ecx, dword [ebp - 0x2c]
dec edx
test ecx, ecx
je 0x4fa4d4
cmp edx, dword [ecx - 4]
jb 0x4fa4d9
call fcn.00403d8c
inc edx
mov dl, byte [ecx + edx - 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x60]
lea eax, [ebp - 0x5c]
mov cl, 2
call fcn.00403154
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x64]
call fcn.00403184
lea eax, [ebp - 0x60]
mov edx, ebx
add edx, 2
jno 0x4fa50b
call fcn.00403d94
mov ecx, dword [ebp - 0x2c]
dec edx
test ecx, ecx
je 0x4fa518
cmp edx, dword [ecx - 4]
jb 0x4fa51d
call fcn.00403d8c
inc edx
mov dl, byte [ecx + edx - 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x60]
lea eax, [ebp - 0x64]
mov cl, 3
call fcn.00403154
lea edx, [ebp - 0x64]
lea eax, [ebp - 0x58]
call fcn.00404fcc
mov eax, dword [ebp - 0x58]
call fcn.0040a26c
mov edx, eax
lea eax, [ebp - 0x54]
call fcn.00404f50
mov edx, dword [ebp - 0x54]
lea eax, [ebp - 0x18]
call fcn.00405030
add ebx, 2
jno 0x4fa567
call fcn.00403d94
jmp 0x4fa593
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 0x2c]
dec ebx
test edx, edx
je 0x4fa579
cmp ebx, dword [edx - 4]
jb 0x4fa57e
call fcn.00403d8c
inc ebx
mov dl, byte [edx + ebx - 1]
call fcn.00404f50
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x18]
call fcn.00405030
add ebx, 1
jno 0x4fa59d
call fcn.00403d94
mov eax, dword [ebp - 0x2c]
dec ebx
test eax, eax
je 0x4fa5aa
cmp ebx, dword [eax - 4]
jb 0x4fa5af
call fcn.00403d8c
inc ebx
cmp byte [eax + ebx - 1], 0x3f
jne 0x4fa43b
mov eax, ebx
add eax, 1
jno 0x4fa5c7
call fcn.00403d94
mov edx, dword [ebp - 0x2c]
dec eax
test edx, edx
je 0x4fa5d4
cmp eax, dword [edx - 4]
jb 0x4fa5d9
call fcn.00403d8c
inc eax
cmp byte [edx + eax - 1], 0x3d
jne 0x4fa43b
jmp 0x4fa72e
cmp byte [ebp - 0x2d], 0
je 0x4fa72e
jmp 0x4fa71d
mov eax, 1
mov edx, dword [ebp - 0x2c]
dec eax
test edx, edx
je 0x4fa60b
cmp eax, dword [edx - 4]
jb 0x4fa610
call fcn.00403d8c
inc eax
mov al, byte [edx + eax - 1]
call fcn.004fa040
mov byte [ebp - 0x1f], al
mov eax, 2
mov edx, dword [ebp - 0x2c]
dec eax
test edx, edx
je 0x4fa62f
cmp eax, dword [edx - 4]
jb 0x4fa634
call fcn.00403d8c
inc eax
mov al, byte [edx + eax - 1]
call fcn.004fa040
mov byte [ebp - 0x1e], al
mov eax, 3
mov edx, dword [ebp - 0x2c]
dec eax
test edx, edx
je 0x4fa653
cmp eax, dword [edx - 4]
jb 0x4fa658
call fcn.00403d8c
inc eax
mov al, byte [edx + eax - 1]
call fcn.004fa040
mov byte [ebp - 0x1d], al
mov eax, 4
mov edx, dword [ebp - 0x2c]
dec eax
test edx, edx
je 0x4fa677
cmp eax, dword [edx - 4]
jb 0x4fa67c
call fcn.00403d8c
inc eax
mov al, byte [edx + eax - 1]
call fcn.004fa040
mov byte [ebp - 0x1c], al
xor eax, eax
mov al, byte [ebp - 0x1f]
shl eax, 2
xor edx, edx
mov dl, byte [ebp - 0x1e]
shr edx, 4
or eax, edx
mov byte [ebp - 0x1b], al
xor eax, eax
mov al, byte [ebp - 0x1e]
shl eax, 4
xor edx, edx
mov dl, byte [ebp - 0x1d]
shr edx, 2
or eax, edx
mov byte [ebp - 0x1a], al
xor eax, eax
mov al, byte [ebp - 0x1d]
shl eax, 6
xor edx, edx
mov dl, byte [ebp - 0x1c]
shr edx, 0
or eax, edx
mov byte [ebp - 0x19], al
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00405028
mov ecx, eax
mov edx, 5
mov eax, dword [ebp - 0x2c]
call fcn.00405288
push dword [ebp - 0x18]
lea eax, [ebp - 0x6c]
mov dl, byte [ebp - 0x1b]
call fcn.00404f50
push dword [ebp - 0x6c]
lea eax, [ebp - 0x70]
mov dl, byte [ebp - 0x1a]
call fcn.00404f50
push dword [ebp - 0x70]
lea eax, [ebp - 0x74]
mov dl, byte [ebp - 0x19]
call fcn.00404f50
push dword [ebp - 0x74]
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.004050e8
mov eax, dword [ebp - 0x2c]
call fcn.00405028
cmp eax, 4
jge 0x4fa5f9
cmp byte [ebp - 0x2d], 0
je 0x4fa7ca
mov edx, 0x4fa9d4
mov eax, dword [ebp - 0x14]
call fcn.004ea500
test al, al
je 0x4fa756
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
call fcn.004fa9ec
jmp 0x4fa761
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
call fcn.00404e00
lea eax, [ebp - 0x78]
push eax
mov ecx, edi
sub ecx, 1
jno 0x4fa771
call fcn.00403d94
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00405288
push dword [ebp - 0x78]
push dword [ebp - 0x2c]
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 4]
call fcn.00405028
mov ecx, eax
mov edx, dword [ebp - 0x24]
add edx, 2
jno 0x4fa79f
call fcn.00403d94
mov eax, dword [ebp - 4]
call fcn.00405288
push dword [ebp - 0x7c]
lea eax, [ebp - 4]
mov edx, 3
call fcn.004050e8
mov eax, dword [ebp - 0x2c]
call fcn.00405028
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x2c]
call fcn.00404d68
add dword [ebp - 0x24], edi
jno 0x4fa7d4
call fcn.00403d94
mov dword [ebp - 0x28], edi
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x28]
add ecx, 1
jno 0x4fa7f2
call fcn.00403d94
test ecx, ecx
jns 0x4fa7fb
call fcn.00403d8c
mov eax, 0x4fa94c
call fcn.004e9e74
mov edi, eax
test edi, edi
jns 0x4fa810
call fcn.00403d8c
test edi, edi
jne 0x4fa853
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x28]
add ecx, 1
jno 0x4fa835
call fcn.00403d94
test ecx, ecx
jns 0x4fa83e
call fcn.00403d8c
mov eax, 0x4fa95c
call fcn.004e9e74
mov edi, eax
test edi, edi
jns 0x4fa853
call fcn.00403d8c
test edi, edi
jne 0x4fa896
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 4]
call fcn.0040994c
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x28]
add ecx, 1
jno 0x4fa878
call fcn.00403d94
test ecx, ecx
jns 0x4fa881
call fcn.00403d8c
mov eax, 0x4fa970
call fcn.004e9e74
mov edi, eax
test edi, edi
jns 0x4fa896
call fcn.00403d8c
cmp byte [ebp - 0x2d], 0
je 0x4fa8a4
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
jmp 0x4fa8ab
mov dword [ebp - 0x34], 0xffffffff
test edi, edi
jg 0x4fa121
jmp 0x4fa8d1
mov edx, dword [ebp - 4]
mov eax, 0x4fa9e8
call fcn.0040536c
mov edx, eax
lea eax, [ebp - 4]
mov ecx, 1
call fcn.004052c8
mov edx, dword [ebp - 4]
mov eax, 0x4fa9e8
call fcn.0040536c
test eax, eax
jg 0x4fa8b5
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00404dbc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fa93c
lea eax, [ebp - 0x88]
mov edx, 9
call fcn.00404d8c
lea eax, [ebp - 0x58]
mov edx, 9
call fcn.00404d8c
lea eax, [ebp - 0x2c]
call fcn.00404d68
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404d8c
lea eax, [ebp - 4]
call fcn.00404d68
ret