Function at 0x4a51f0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x10
push 0
push 0
dec ecx
jne 0x4a51f8
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004040b8
xor eax, eax
push ebp
push 0x4a5a76
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x2c], 0xffffffff
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x30]
mov ecx, 1
mov eax, 0x4a5a8c
call fcn.00457a04
mov edi, eax
test edi, edi
jns 0x4a524d
call fcn.00402e94
test edi, edi
jne 0x4a5279
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x34]
mov ecx, 1
mov eax, 0x4a5a9c
call fcn.00457a04
mov edi, eax
test edi, edi
jns 0x4a5279
call fcn.00402e94
test edi, edi
jne 0x4a52a5
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x38]
mov ecx, 1
mov eax, 0x4a5ab0
call fcn.00457a04
mov edi, eax
test edi, edi
jns 0x4a52a5
call fcn.00402e94
test edi, edi
jle 0x4a5a15
mov byte [ebp - 0x25], 1
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x3c]
mov ecx, edi
add ecx, 5
jno 0x4a52cb
call fcn.00402e9c
test ecx, ecx
jns 0x4a52d4
call fcn.00402e94
mov eax, 0x4a5ac0
call fcn.00457a04
test eax, eax
jns 0x4a52e7
call fcn.00402e94
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x4a52f6
mov byte [ebp - 0x25], 0
jmp 0x4a5327
mov ebx, edi
mov esi, dword [ebp - 0x20]
sub esi, 1
jno 0x4a5305
call fcn.00402e9c
sub esi, ebx
jl 0x4a5327
inc esi
mov ecx, 0x4a5ac4
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00458070
test al, al
je 0x4a5323
mov byte [ebp - 0x25], 0
jmp 0x4a5327
inc ebx
dec esi
jne 0x4a530a
cmp byte [ebp - 0x25], 0
je 0x4a53a4
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
add ecx, 1
jno 0x4a5348
call fcn.00402e9c
test ecx, ecx
jns 0x4a5351
call fcn.00402e94
mov eax, 0x4a5ac0
call fcn.00457a04
test eax, eax
jns 0x4a5364
call fcn.00402e94
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x4a5373
mov byte [ebp - 0x25], 0
jmp 0x4a53a4
mov ebx, edi
mov esi, dword [ebp - 0x20]
sub esi, 1
jno 0x4a5382
call fcn.00402e9c
sub esi, ebx
jl 0x4a53a4
inc esi
mov ecx, 0x4a5ac4
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00458070
test al, al
je 0x4a53a0
mov byte [ebp - 0x25], 0
jmp 0x4a53a4
inc ebx
dec esi
jne 0x4a5387
cmp byte [ebp - 0x25], 0
je 0x4a591a
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x20]
add ecx, 1
jno 0x4a53c9
call fcn.00402e9c
test ecx, ecx
jns 0x4a53d2
call fcn.00402e94
mov eax, 0x4a5aec
call fcn.00457a04
test eax, eax
jns 0x4a53e5
call fcn.00402e94
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jle 0x4a591a
mov ebx, edi
mov esi, dword [ebp - 0x20]
sub esi, 1
jno 0x4a5401
call fcn.00402e9c
sub esi, ebx
jl 0x4a5423
inc esi
mov ecx, 0x4a5ac4
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00458070
test al, al
je 0x4a541f
mov byte [ebp - 0x25], 0
jmp 0x4a5423
inc ebx
dec esi
jne 0x4a5406
cmp byte [ebp - 0x25], 0
je 0x4a5528
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x20]
sub ecx, edi
jno 0x4a543d
call fcn.00402e9c
add ecx, 2
jno 0x4a5447
call fcn.00402e9c
mov edx, edi
mov eax, dword [ebp - 4]
call fcn.0040410c
mov ebx, 1
mov edx, dword [ebp - 0x24]
mov eax, 0x4a5ac0
call fcn.004041f0
mov esi, eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
call fcn.00403f04
mov ecx, eax
sub ecx, esi
jno 0x4a547c
call fcn.00402e9c
add ecx, 1
jno 0x4a5486
call fcn.00402e9c
mov edx, esi
add edx, 1
jno 0x4a5492
call fcn.00402e9c
mov eax, dword [ebp - 0x24]
call fcn.0040410c
cmp ebx, 1
jne 0x4a54cb
lea eax, [ebp - 0x10]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x4a5ac0
call fcn.004041f0
mov ecx, eax
sub ecx, 1
jno 0x4a54bc
call fcn.00402e9c
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040410c
jmp 0x4a54e6
cmp ebx, 2
jne 0x4a54e6
lea eax, [ebp - 0xc]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040410c
inc ebx
cmp ebx, 4
jne 0x4a5456
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x24]
call fcn.00403f04
mov edx, eax
sub edx, 1
jno 0x4a5508
call fcn.00402e9c
mov ecx, 2
mov eax, dword [ebp - 0x24]
call fcn.0040410c
mov eax, dword [ebp - 0x48]
mov edx, 0x4a5aec
call fcn.00404014
je 0x4a5528
mov byte [ebp - 0x25], 0
cmp dword [ebp - 0x2c], 0
setge al
and al, byte [ebp - 0x25]
je 0x4a5599
test edi, edi
jle 0x4a5599
mov byte [ebp - 0x26], 1
mov ebx, dword [ebp - 0x2c]
mov esi, edi
sub esi, 1
jno 0x4a554b
call fcn.00402e9c
sub esi, ebx
jl 0x4a556d
inc esi
mov ecx, 0x4a5ac4
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00458070
test al, al
jne 0x4a5569
mov byte [ebp - 0x26], 0
jmp 0x4a556d
inc ebx
dec esi
jne 0x4a5550
cmp byte [ebp - 0x26], 0
je 0x4a5599
mov ebx, edi
sub ebx, dword [ebp - 0x2c]
jno 0x4a557f
call fcn.00402e9c
mov ecx, ebx
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x2c]
call fcn.0040414c
sub dword [ebp - 0x20], ebx
jno 0x4a5596
call fcn.00402e9c
mov edi, dword [ebp - 0x2c]
mov edx, 0x4a5af8
mov eax, dword [ebp - 0xc]
call fcn.00458058
and al, byte [ebp - 0x25]
je 0x4a574f
mov ebx, 1
lea eax, [ebp - 0x14]
call fcn.00403c84
mov eax, dword [ebp - 0x24]
dec ebx
cmp ebx, dword [eax - 4]
jb 0x4a55ca
call fcn.00402e94
inc ebx
cmp byte [eax + ebx - 1], 0x5f
jne 0x4a55e4
lea eax, [ebp - 0x14]
mov edx, 0x4a5b04
call fcn.00403f0c
jmp 0x4a5700
mov eax, dword [ebp - 0x24]
dec ebx
cmp ebx, dword [eax - 4]
jb 0x4a55f2
call fcn.00402e94
inc ebx
cmp byte [eax + ebx - 1], 0x3d
jne 0x4a56da
mov eax, dword [ebp - 0x24]
call fcn.00403f04
mov edx, ebx
add edx, 2
jno 0x4a5612
call fcn.00402e9c
add edx, 2
jno 0x4a561c
call fcn.00402e9c
cmp eax, edx
jl 0x4a56da
mov edx, 0x4a5b08
lea eax, [ebp - 0x54]
call fcn.00402a68
lea eax, [ebp - 0x58]
mov edx, ebx
add edx, 1
jno 0x4a5640
call fcn.00402e9c
mov ecx, dword [ebp - 0x24]
dec edx
cmp edx, dword [ecx - 4]
jb 0x4a564e
call fcn.00402e94
inc edx
mov dl, byte [ecx + edx - 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x58]
lea eax, [ebp - 0x54]
mov cl, 2
call fcn.00402a38
lea edx, [ebp - 0x54]
lea eax, [ebp - 0x5c]
call fcn.00402a68
lea eax, [ebp - 0x58]
mov edx, ebx
add edx, 2
jno 0x4a5680
call fcn.00402e9c
mov ecx, dword [ebp - 0x24]
dec edx
cmp edx, dword [ecx - 4]
jb 0x4a568e
call fcn.00402e94
inc edx
mov dl, byte [ecx + edx - 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x58]
lea eax, [ebp - 0x5c]
mov cl, 3
call fcn.00402a38
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x50]
call fcn.00403ea8
mov eax, dword [ebp - 0x50]
call fcn.00409434
mov edx, eax
lea eax, [ebp - 0x4c]
call fcn.00403e2c
mov edx, dword [ebp - 0x4c]
lea eax, [ebp - 0x14]
call fcn.00403f0c
add ebx, 2
jno 0x4a56d8
call fcn.00402e9c
jmp 0x4a5700
lea eax, [ebp - 0x60]
mov edx, dword [ebp - 0x24]
dec ebx
cmp ebx, dword [edx - 4]
jb 0x4a56eb
call fcn.00402e94
inc ebx
mov dl, byte [edx + ebx - 1]
call fcn.00403e2c
mov edx, dword [ebp - 0x60]
lea eax, [ebp - 0x14]
call fcn.00403f0c
add ebx, 1
jno 0x4a570a
call fcn.00402e9c
mov eax, dword [ebp - 0x24]
dec ebx
cmp ebx, dword [eax - 4]
jb 0x4a5718
call fcn.00402e94
inc ebx
cmp byte [eax + ebx - 1], 0x3f
jne 0x4a55bc
mov eax, ebx
add eax, 1
jno 0x4a5730
call fcn.00402e9c
mov edx, dword [ebp - 0x24]
dec eax
cmp eax, dword [edx - 4]
jb 0x4a573e
call fcn.00402e94
inc eax
cmp byte [edx + eax - 1], 0x3d
jne 0x4a55bc
jmp 0x4a587e
cmp byte [ebp - 0x25], 0
je 0x4a587e
jmp 0x4a586d
mov eax, 1
mov edx, dword [ebp - 0x24]
dec eax
cmp eax, dword [edx - 4]
jb 0x4a5771
call fcn.00402e94
inc eax
mov al, byte [edx + eax - 1]
call fcn.004a51cc
mov byte [ebp - 0x1b], al
mov eax, 2
mov edx, dword [ebp - 0x24]
dec eax
cmp eax, dword [edx - 4]
jb 0x4a5791
call fcn.00402e94
inc eax
mov al, byte [edx + eax - 1]
call fcn.004a51cc
mov byte [ebp - 0x1a], al
mov eax, 3
mov edx, dword [ebp - 0x24]
dec eax
cmp eax, dword [edx - 4]
jb 0x4a57b1
call fcn.00402e94
inc eax
mov al, byte [edx + eax - 1]
call fcn.004a51cc
mov byte [ebp - 0x19], al
mov eax, 4
mov edx, dword [ebp - 0x24]
dec eax
cmp eax, dword [edx - 4]
jb 0x4a57d1
call fcn.00402e94
inc eax
mov al, byte [edx + eax - 1]
call fcn.004a51cc
mov ebx, eax
mov byte [ebp - 0x18], bl
xor edx, edx
mov dl, byte [ebp - 0x1b]
shl edx, 2
xor eax, eax
mov al, byte [ebp - 0x1a]
mov ecx, eax
shr ecx, 4
or edx, ecx
mov byte [ebp - 0x17], dl
shl eax, 4
xor edx, edx
mov dl, byte [ebp - 0x19]
mov ecx, edx
shr ecx, 2
or eax, ecx
mov byte [ebp - 0x16], al
shl edx, 6
xor eax, eax
mov al, bl
shr eax, 0
or edx, eax
mov byte [ebp - 0x15], dl
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
call fcn.00403f04
mov ecx, eax
mov edx, 5
mov eax, dword [ebp - 0x24]
call fcn.0040410c
push dword [ebp - 0x14]
lea eax, [ebp - 0x64]
mov dl, byte [ebp - 0x17]
call fcn.00403e2c
push dword [ebp - 0x64]
lea eax, [ebp - 0x68]
mov dl, byte [ebp - 0x16]
call fcn.00403e2c
push dword [ebp - 0x68]
lea eax, [ebp - 0x6c]
mov dl, byte [ebp - 0x15]
call fcn.00403e2c
push dword [ebp - 0x6c]
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00403fc4
mov eax, dword [ebp - 0x24]
call fcn.00403f04
cmp eax, 4
jge 0x4a575e
cmp byte [ebp - 0x25], 0
je 0x4a591a
mov edx, 0x4a5b14
mov eax, dword [ebp - 0x10]
call fcn.00458058
test al, al
je 0x4a58a6
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call fcn.004a5b2c
jmp 0x4a58b1
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x14]
call fcn.00403d1c
lea eax, [ebp - 0x70]
push eax
mov ecx, edi
sub ecx, 1
jno 0x4a58c1
call fcn.00402e9c
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.0040410c
push dword [ebp - 0x70]
push dword [ebp - 0x24]
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 4]
call fcn.00403f04
mov ecx, eax
mov edx, dword [ebp - 0x20]
add edx, 2
jno 0x4a58ef
call fcn.00402e9c
mov eax, dword [ebp - 4]
call fcn.0040410c
push dword [ebp - 0x74]
lea eax, [ebp - 4]
mov edx, 3
call fcn.00403fc4
mov eax, dword [ebp - 0x24]
call fcn.00403f04
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
call fcn.00403c84
add dword [ebp - 0x20], edi
jno 0x4a5924
call fcn.00402e9c
mov ebx, edi
lea edx, [ebp - 0x78]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x78]
mov esi, ebx
add esi, 1
jno 0x4a5940
call fcn.00402e9c
test esi, esi
jns 0x4a5949
call fcn.00402e94
mov ecx, esi
mov eax, 0x4a5a8c
call fcn.00457a04
mov edi, eax
test edi, edi
jns 0x4a5960
call fcn.00402e94
test edi, edi
jne 0x4a599e
lea edx, [ebp - 0x7c]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x7c]
mov eax, ebx
add eax, 1
jno 0x4a597e
call fcn.00402e9c
test eax, eax
jns 0x4a5987
call fcn.00402e94
mov ecx, esi
mov eax, 0x4a5a9c
call fcn.00457a04
mov edi, eax
test edi, edi
jns 0x4a599e
call fcn.00402e94
test edi, edi
jne 0x4a59da
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 4]
call fcn.00408d04
mov edx, dword [ebp - 0x80]
add ebx, 1
jno 0x4a59ba
call fcn.00402e9c
test ebx, ebx
jns 0x4a59c3
call fcn.00402e94
mov ecx, esi
mov eax, 0x4a5ab0
call fcn.00457a04
mov edi, eax
test edi, edi
jns 0x4a59da
call fcn.00402e94
cmp byte [ebp - 0x25], 0
je 0x4a59e8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x4a59ef
mov dword [ebp - 0x2c], 0xffffffff
test edi, edi
jg 0x4a52ad
jmp 0x4a5a15
mov edx, dword [ebp - 4]
mov eax, 0x4a5b28
call fcn.004041f0
mov edx, eax
lea eax, [ebp - 4]
mov ecx, 1
call fcn.0040414c
mov edx, dword [ebp - 4]
mov eax, 0x4a5b28
call fcn.004041f0
test eax, eax
jg 0x4a59f9
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00403cd8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a5a7d
lea eax, [ebp - 0x80]
mov edx, 9
call fcn.00403ca8
lea eax, [ebp - 0x50]
mov edx, 9
call fcn.00403ca8
lea eax, [ebp - 0x24]
call fcn.00403c84
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00403ca8
lea eax, [ebp - 4]
call fcn.00403c84
ret