Function at 0x41a9b0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x20]
call fcn.0040d620
mov edi, dword [esi + 0x38]
sub edi, dword [esi + 0x34]
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
xor ecx, ecx
lea eax, [edx + edx*2]
mov ebp, edi
sub ebp, eax
mov eax, ecx
setne al
lea ebx, [esi + 8]
mov dword [esi + 4], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], ecx
add eax, edx
mov edx, dword [ebx + 0x14]
add eax, eax
add eax, eax
cmp eax, edx
ja 0x41aa10
push 0xffffffffffffffff
push eax
mov ecx, ebx
call fcn.00401710
jmp 0x41aa1b
push ecx
sub eax, edx
push eax
mov ecx, ebx
call fcn.0040f3d0
mov ecx, ebx
call fcn.004014a0
lea ecx, [esp + 0x40]
mov dword [esp + 0x14], eax
call fcn.0040d620
test ebx, ebx
je 0x41aa57
cmp dword [esp + 0x14], 0
je 0x41aa57
mov ecx, ebx
call fcn.004014a0
cmp eax, dword [esp + 0x14]
ja 0x41aa57
mov ecx, ebx
call fcn.004014a0
add eax, dword [ebx + 0x14]
cmp dword [esp + 0x14], eax
jbe 0x41aa5c
call fcn.00497844
mov ecx, dword [esp + 0x14]
sub edi, ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edi
je 0x41ad6d
mov edi, 2
mov edx, dword [esi + 0x38]
sub edx, dword [esi + 0x34]
mov ebp, dword [esp + 0x10]
cmp ebp, edx
jb 0x41aa8c
call fcn.00497844
mov ebx, dword [esi + 0x34]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add ebx, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
cmp eax, 0xfffffffc
je 0x41aad3
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41aab8
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov edx, dword [esp + 0x20]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41aad3
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x28], 0xfffffffc
je 0x41ab0b
lea ecx, [esp + 0x28]
call fcn.00402f80
test al, al
jne 0x41aaf0
call fcn.00497844
mov ecx, dword [esp + 0x28]
call fcn.004014a0
mov ecx, dword [esp + 0x28]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x2c], eax
jb 0x41ab0b
call fcn.00497844
movzx edx, byte [ebx]
mov ecx, dword [esp + 0x2c]
shr edx, 2
mov al, byte [edx + 0x4fd1d0]
mov byte [ecx], al
mov edx, dword [esi + 0x38]
sub edx, dword [esi + 0x34]
cmp ebp, edx
jb 0x41ab2c
call fcn.00497844
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
sub ecx, dword [esi + 0x34]
add eax, ebp
mov dword [esp + 0x14], eax
lea eax, [edi - 1]
cmp eax, ecx
jb 0x41ab47
call fcn.00497844
mov ebx, dword [esi + 0x34]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
lea ebp, [edi - 1]
add ebx, ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp eax, 0xfffffffc
je 0x41ab91
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41ab76
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41ab91
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x30], 0xfffffffc
je 0x41abc9
lea ecx, [esp + 0x30]
call fcn.00402f80
test al, al
jne 0x41abae
call fcn.00497844
mov ecx, dword [esp + 0x30]
call fcn.004014a0
mov edx, dword [esp + 0x30]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x34], eax
jb 0x41abc9
call fcn.00497844
mov ecx, dword [esp + 0x14]
movzx edx, byte [ecx]
movzx eax, byte [ebx]
mov ecx, dword [esp + 0x34]
shr eax, 4
shl edx, 4
or eax, edx
and eax, 0x3f
mov al, byte [eax + 0x4fd1d0]
mov byte [ecx], al
mov edx, dword [esi + 0x38]
sub edx, dword [esi + 0x34]
lea eax, [edi - 1]
cmp eax, edx
jb 0x41abfc
call fcn.00497844
mov eax, dword [esi + 0x34]
add eax, ebp
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
cmp edi, eax
jb 0x41ac14
call fcn.00497844
mov ebx, dword [esi + 0x34]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add ebx, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
cmp eax, 0xfffffffc
je 0x41ac5b
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41ac40
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov edx, dword [esp + 0x20]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41ac5b
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x38], 0xfffffffc
je 0x41ac93
lea ecx, [esp + 0x38]
call fcn.00402f80
test al, al
jne 0x41ac78
call fcn.00497844
mov ecx, dword [esp + 0x38]
call fcn.004014a0
mov ecx, dword [esp + 0x38]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x3c], eax
jb 0x41ac93
call fcn.00497844
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax]
movzx edx, byte [ebx]
mov eax, dword [esp + 0x3c]
add ecx, ecx
shr edx, 6
add ecx, ecx
or edx, ecx
and edx, 0x3f
mov dl, byte [edx + 0x4fd1d0]
mov byte [eax], dl
mov ecx, dword [esi + 0x38]
sub ecx, dword [esi + 0x34]
cmp edi, ecx
jb 0x41acc4
call fcn.00497844
mov ebx, dword [esi + 0x34]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add ebx, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
cmp eax, 0xfffffffc
je 0x41ad0b
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41acf0
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41ad0b
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x40], 0xfffffffc
je 0x41ad43
lea ecx, [esp + 0x40]
call fcn.00402f80
test al, al
jne 0x41ad28
call fcn.00497844
mov ecx, dword [esp + 0x40]
call fcn.004014a0
mov edx, dword [esp + 0x40]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x44], eax
jb 0x41ad43
call fcn.00497844
movzx eax, byte [ebx]
mov edx, dword [esp + 0x44]
and eax, 0x3f
mov cl, byte [eax + 0x4fd1d0]
mov eax, dword [esp + 0x10]
add eax, 3
add edi, 3
mov byte [edx], cl
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x1c]
jb 0x41aa79
cmp dword [esp + 0x18], 0
je 0x41b149
mov ecx, dword [esi + 0x38]
sub ecx, dword [esi + 0x34]
mov eax, dword [esp + 0x10]
cmp eax, ecx
jb 0x41ad8f
call fcn.00497844
mov eax, dword [esp + 0x10]
mov edi, dword [esi + 0x34]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add edi, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
cmp ecx, 0xfffffffc
je 0x41adda
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41adbb
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41add6
call fcn.00497844
mov eax, dword [esp + 0x10]
inc dword [esp + 0x24]
cmp dword [esp + 0x40], 0xfffffffc
je 0x41ae16
lea ecx, [esp + 0x40]
call fcn.00402f80
test al, al
jne 0x41adf7
call fcn.00497844
mov ecx, dword [esp + 0x40]
call fcn.004014a0
mov edx, dword [esp + 0x40]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x44], eax
jb 0x41ae12
call fcn.00497844
mov eax, dword [esp + 0x10]
movzx ecx, byte [edi]
shr ecx, 2
cmp dword [esp + 0x18], 1
mov dl, byte [ecx + 0x4fd1d0]
mov ecx, dword [esp + 0x44]
mov byte [ecx], dl
jne 0x41af60
mov edx, dword [esi + 0x38]
sub edx, dword [esi + 0x34]
cmp eax, edx
jb 0x41ae46
call fcn.00497844
mov eax, dword [esp + 0x10]
mov esi, dword [esi + 0x34]
mov ecx, dword [esp + 0x24]
add esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
cmp eax, 0xfffffffc
je 0x41ae8d
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41ae72
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov edx, dword [esp + 0x20]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41ae8d
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x40], 0xfffffffc
je 0x41aec5
lea ecx, [esp + 0x40]
call fcn.00402f80
test al, al
jne 0x41aeaa
call fcn.00497844
mov ecx, dword [esp + 0x40]
call fcn.004014a0
mov ecx, dword [esp + 0x40]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x44], eax
jb 0x41aec5
call fcn.00497844
movzx edx, byte [esi]
mov ecx, dword [esp + 0x44]
and edx, 3
shl edx, 4
mov al, byte [edx + 0x4fd1d0]
mov byte [ecx], al
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
cmp eax, 0xfffffffc
je 0x41af1c
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41af01
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41af1c
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x40], 0xfffffffc
je 0x41af54
lea ecx, [esp + 0x40]
call fcn.00402f80
test al, al
jne 0x41af39
call fcn.00497844
mov ecx, dword [esp + 0x40]
call fcn.004014a0
mov edx, dword [esp + 0x40]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x44], eax
jb 0x41af54
call fcn.00497844
mov eax, dword [esp + 0x44]
mov byte [eax], 0x3d
jmp 0x41b0c8
mov ecx, dword [esi + 0x38]
sub ecx, dword [esi + 0x34]
cmp eax, ecx
jb 0x41af73
call fcn.00497844
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x38]
mov ebp, dword [esi + 0x34]
sub edx, dword [esi + 0x34]
lea ebx, [eax + 1]
add ebp, eax
cmp ebx, edx
jb 0x41af8a
call fcn.00497844
mov edi, dword [esi + 0x34]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add edi, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
cmp eax, 0xfffffffc
je 0x41afd1
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41afb6
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov edx, dword [esp + 0x20]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41afd1
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x40], 0xfffffffc
je 0x41b009
lea ecx, [esp + 0x40]
call fcn.00402f80
test al, al
jne 0x41afee
call fcn.00497844
mov ecx, dword [esp + 0x40]
call fcn.004014a0
mov ecx, dword [esp + 0x40]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x44], eax
jb 0x41b009
call fcn.00497844
movzx edx, byte [edi]
movzx eax, byte [ebp]
shr edx, 4
shl eax, 4
or edx, eax
and edx, 0x3f
mov cl, byte [edx + 0x4fd1d0]
mov edx, dword [esp + 0x44]
mov byte [edx], cl
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
cmp ebx, eax
jb 0x41b036
call fcn.00497844
mov esi, dword [esi + 0x34]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add esi, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
cmp eax, 0xfffffffc
je 0x41b07d
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41b062
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov edx, dword [esp + 0x20]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41b07d
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x40], 0xfffffffc
je 0x41b0b5
lea ecx, [esp + 0x40]
call fcn.00402f80
test al, al
jne 0x41b09a
call fcn.00497844
mov ecx, dword [esp + 0x40]
call fcn.004014a0
mov ecx, dword [esp + 0x40]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x44], eax
jb 0x41b0b5
call fcn.00497844
movzx edx, byte [esi]
mov ecx, dword [esp + 0x44]
and edx, 0xf
mov al, byte [edx*4 + 0x4fd1d0]
mov byte [ecx], al
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
cmp eax, 0xfffffffc
je 0x41b10a
lea ecx, [esp + 0x20]
call fcn.00402f80
test al, al
jne 0x41b0ef
call fcn.00497844
mov ecx, dword [esp + 0x20]
call fcn.004014a0
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + 0x14]
cmp dword [esp + 0x24], eax
jb 0x41b10a
call fcn.00497844
inc dword [esp + 0x24]
cmp dword [esp + 0x40], 0xfffffffc
je 0x41b142
lea ecx, [esp + 0x40]
call fcn.00402f80
test al, al
jne 0x41b127
call fcn.00497844
mov ecx, dword [esp + 0x40]
call fcn.004014a0
mov edx, dword [esp + 0x40]
add eax, dword [edx + 0x14]
cmp dword [esp + 0x44], eax
jb 0x41b142
call fcn.00497844
mov eax, dword [esp + 0x44]
mov byte [eax], 0x3d
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret