Function at 0x481c80
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov eax, dword [ebp + 8]
mov ebx, ecx
test al, 3
je 0x481ca1
mov byte [ebx + 4], 0
and dword [ebx], 0
jmp 0x48248c
cmp eax, 2
mov dword [ebp - 0x2c], edx
jb 0x481d17
mov ecx, eax
movzx eax, byte [eax + edx - 1]
movzx edx, byte [ecx + edx - 2]
push 0x3c
pop ecx
mov edi, 0x1c2
mov esi, ecx
sub ecx, eax
add eax, edi
sub esi, edx
add edx, edi
and eax, ecx
and edx, esi
mov esi, eax
shr esi, 8
and esi, 1
bt edx, 8
mov ecx, esi
adc cx, 0
movzx edi, cx
mov ecx, dword [ebp + 8]
sub ecx, edi
test di, di
je 0x481d2a
cmp edi, 1
je 0x481d36
mov esi, edx
cmp edi, 2
mov edx, dword [ebp - 0x2c]
mov edi, dword [ebp + 8]
jne 0x481c95
mov dword [ebp - 0x24], ebx
movzx ebx, ax
movzx eax, si
and eax, ebx
xor ebx, ebx
bt eax, 8
mov eax, edi
setae bl
mov dword [ebp - 0x1c], ebx
jmp 0x481d48
xor ecx, ecx
test eax, eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], 0
setne cl
jmp 0x481d48
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], 0
jmp 0x481d42
movzx eax, si
mov dword [ebp - 0x24], ebx
xor eax, 1
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
push 0x643ae8
push eax
call fcn.00450052
pop ecx
pop ecx
mov edi, edx
mov esi, eax
mov edx, ebx
mov eax, edi
mov ebx, edi
shr eax, 2
and ebx, 3
lea ecx, [eax + eax*2]
lea eax, [ebx + ebx*2]
shr eax, 2
add eax, ecx
cmp eax, edx
jbe 0x481d83
mov eax, dword [ebp - 0x24]
mov byte [eax + 4], 1
jmp 0x482489
mov ecx, dword [ebp + 0xc]
push 0x643af8
push eax
call fcn.0055bdab
pop ecx
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x88]
and edi, 0xfffffffc
mov ecx, edx
mov dword [eax], esi
add esi, edi
mov dword [eax + 4], edi
mov dword [eax + 8], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], 4
push 3
pop esi
mov eax, edx
xor edx, edx
div esi
mov edi, dword [ebp - 0x38]
mov eax, ecx
lea esi, [ebp - 0x9c]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x5c], ecx
sub eax, edx
mov dword [esi + 8], edi
mov dword [esi + 0xc], eax
add eax, edi
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 0x10], 3
lea eax, [ebp - 0x9c]
lea ecx, [ebp - 0x50]
lea edx, [ebp - 0x88]
push eax
call fcn.00482516
pop eax
mov esi, dword [ebp - 0x50]
test esi, esi
je 0x481eca
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
je 0x48225c
mov eax, dword [ebp - 0x48]
movzx ecx, byte [esi]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
call fcn.0048258e
cmp ebx, 1
mov dword [ebp - 0x14], eax
je 0x48226a
movzx ecx, byte [esi + 1]
call fcn.0048258e
cmp ebx, 2
jbe 0x482279
movzx ecx, byte [esi + 2]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x20], eax
call fcn.0048258e
cmp ebx, 3
je 0x482288
movzx ecx, byte [esi + 3]
mov edi, eax
call fcn.0048258e
cmp dword [ebp - 0x10], 0
je 0x482297
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
movzx edx, bx
lea ecx, [ecx*4]
shr edx, 4
or edx, ecx
cmp dword [ebp - 0x10], 1
mov byte [esi], dl
je 0x4822a5
mov ecx, ebx
movzx edx, di
shl ecx, 4
shr edx, 2
or edx, ecx
cmp dword [ebp - 0x10], 2
mov byte [esi + 1], dl
jbe 0x4822b4
or ebx, dword [ebp - 0x14]
mov ecx, edi
or edi, eax
shl ecx, 6
or ecx, eax
mov byte [esi + 2], cl
or edi, ebx
shr edi, 8
and edi, 1
or dword [ebp - 0x1c], edi
jmp 0x481de5
mov esi, dword [ebp - 0x7c]
xor eax, eax
mov edi, dword [ebp - 0x80]
lea ebx, [ebp - 0x74]
mov dword [ebx], 0x41414141
mov ecx, ebx
cmp esi, 1
mov edx, esi
sete al
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x3c]
and word [eax], 0
mov byte [eax + 2], 0
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x18], eax
push 0x643b08
call fcn.00482579
pop ecx
mov ecx, eax
push 0x643b18
push esi
push edi
call fcn.0043613b
add esp, 0xc
mov ecx, dword [ebx]
call fcn.0048258e
movzx ecx, byte [ebx + 1]
mov edi, eax
call fcn.0048258e
movzx ecx, byte [ebx + 2]
mov dword [ebp - 0x20], eax
movzx eax, ax
mov dword [ebp - 0x34], eax
call fcn.0048258e
movzx ecx, byte [ebx + 3]
mov esi, eax
movzx eax, ax
mov dword [ebp - 0x28], eax
call fcn.0048258e
mov ecx, dword [ebp - 0x34]
mov ebx, eax
lea eax, [edi*4]
mov edx, dword [ebp - 0x20]
shr ecx, 4
or edi, edx
or ecx, eax
mov eax, ecx
lea ecx, [ebp - 0x3c]
mov byte [ecx], al
mov ecx, dword [ebp - 0x28]
mov eax, edx
shl eax, 4
shr ecx, 2
or ecx, eax
mov eax, ecx
lea ecx, [ebp - 0x3c]
mov byte [ecx + 1], al
mov eax, esi
shl eax, 6
or eax, ebx
or ebx, esi
or ebx, edi
mov edi, dword [ebp - 0x18]
mov byte [ecx + 2], al
shr ebx, 8
and ebx, 1
or ebx, dword [ebp - 0x14]
mov edx, edi
call fcn.0048260a
mov ecx, dword [ebp - 0x10]
mov esi, edx
mov edx, edi
push 0x643b38
push esi
push eax
call fcn.0043613b
add esp, 0xc
or bx, word [ebp - 0x1c]
je 0x481fd1
mov eax, dword [ebp - 0x24]
mov byte [eax + 4], 0
jmp 0x482489
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp + 8]
or eax, edx
je 0x48249f
mov eax, edx
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
sub eax, 1
cmovb eax, ebx
and eax, 0xfffffffc
lea esi, [ecx + eax]
cmp eax, edx
mov eax, esi
cmova eax, ebx
mov dword [ebp - 0x34], eax
ja 0x482483
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x58], esi
mov ecx, edi
sub ecx, 1
cmovb ecx, ebx
xor edx, edx
mov eax, ecx
push 3
pop esi
div esi
sub ecx, edx
sub edi, ecx
jb 0x482483
and dword [ebp - 0x60], 0
cmp edi, 0x3fffffff
ja 0x482481
lea eax, [edi*4]
xor edx, edx
mov ebx, edi
div esi
add eax, 3
and eax, 0x7ffffffc
cmp eax, 4
ja 0x482481
mov esi, dword [ebp - 0x38]
add esi, ecx
lea ecx, [ebp - 0x60]
push 4
pop edx
push 0x643b48
push eax
call fcn.0055bdab
pop ecx
pop ecx
mov dword [ebp - 0x28], eax
mov ecx, edx
mov eax, ebx
xor edx, edx
push 3
pop edi
div edi
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x30], ecx
sub ebx, edx
mov dword [eax], esi
add esi, ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [ebp - 0x28]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 3
mov eax, ecx
and ecx, 0xfffffffc
and eax, 3
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], ecx
add ecx, esi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], 4
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x70]
lea edx, [ebp - 0xb0]
push eax
call fcn.00482516
pop eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4822c3
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x4824af
cmp ecx, 1
je 0x4824bd
cmp ecx, 2
jbe 0x4824cc
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x68]
movzx edi, cx
mov ecx, 0x643d5a
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], edi
shr edi, 2
mov ebx, edi
add ebx, 0x41
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x10], eax
push 0x10
pop eax
test eax, eax
je 0x48214c
test byte [ecx], 1
movzx edx, byte [ecx + 1]
mov esi, edi
cmove esi, ebx
add eax, 0xfffffffc
sub edx, esi
movsx edx, dx
shr edx, 8
and dx, word [ecx + 2]
add ecx, 4
add edx, ebx
mov ebx, edx
jmp 0x482124
cmp dword [ebp - 0x10], 0
je 0x4824db
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov byte [eax], bl
movzx eax, word [ebp - 0x20]
shl ecx, 4
and ecx, 0x30
mov dword [ebp - 0x18], eax
shr eax, 4
lea ebx, [eax + ecx]
lea eax, [eax + ecx + 0x41]
mov ecx, 0x643d5a
push 0x10
pop esi
test esi, esi
je 0x4821a5
test byte [ecx], 1
movzx edi, byte [ecx + 1]
mov edx, ebx
cmove edx, eax
add esi, 0xfffffffc
sub edi, edx
movsx edi, di
shr edi, 8
and di, word [ecx + 2]
add ecx, 4
add edi, eax
mov eax, edi
jmp 0x48217d
cmp dword [ebp - 0x10], 1
je 0x4824e9
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 1], al
mov ecx, dword [ebp - 0x18]
movzx eax, word [ebp - 0x1c]
mov dword [ebp - 0x20], eax
shr eax, 6
and ecx, 0xf
lea edx, [eax + ecx*4]
lea eax, [eax + ecx*4 + 0x41]
mov ecx, 0x643d5a
push 0x10
pop edi
test edi, edi
je 0x4821fc
test byte [ecx], 1
movzx ebx, byte [ecx + 1]
mov esi, edx
cmove esi, eax
add edi, 0xfffffffc
sub ebx, esi
movsx ebx, bx
shr ebx, 8
and bx, word [ecx + 2]
add ecx, 4
add ebx, eax
mov eax, ebx
jmp 0x4821d4
cmp dword [ebp - 0x10], 2
jbe 0x4824f8
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
and edi, 0x3f
mov byte [ecx + 2], al
mov ecx, 0x643d5a
mov ebx, edi
add ebx, 0x41
push 0x10
pop eax
test eax, eax
je 0x482247
test byte [ecx], 1
movzx edx, byte [ecx + 1]
mov esi, edi
cmove esi, ebx
add eax, 0xfffffffc
sub edx, esi
movsx esi, dx
shr esi, 8
and si, word [ecx + 2]
add ecx, 4
add esi, ebx
mov ebx, esi
jmp 0x48221f
cmp dword [ebp - 0x10], 3
je 0x482507
mov eax, dword [ebp - 0x14]
mov byte [eax + 3], bl
jmp 0x4820b6
xor ecx, ecx
xor edx, edx
push 0x643dcc
call fcn.0043a050
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x643ddc
call fcn.0043a050
push 2
pop ecx
mov edx, ecx
push 0x643dec
call fcn.0043a050
push 3
pop ecx
mov edx, ecx
push 0x643dfc
call fcn.0043a050
xor ecx, ecx
xor edx, edx
push 0x643e0c
call fcn.0043a050
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x643e1c
call fcn.0043a050
push 2
pop ecx
mov edx, ecx
push 0x643e2c
call fcn.0043a050
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
sub eax, ecx
jb 0x482451
mov dword [ebp - 0x10], ecx
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x10]
test edi, edi
mov dword [ebp - 0x14], edi
lea ecx, [edi + ecx]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], eax
je 0x482451
lea edi, [ebp - 0x70]
and word [edi], 0
mov ecx, edi
mov byte [edi + 2], 0
push 0x643b98
mov ebx, edx
call fcn.00482623
pop ecx
mov ecx, eax
push 0x643ba8
mov dword [ebp - 0x54], ebx
push ebx
push esi
call fcn.0043613b
add esp, 0xc
movzx eax, byte [edi + 1]
movzx edx, byte [edi]
mov dword [ebp - 0x18], eax
movzx eax, byte [edi + 2]
mov dword [ebp - 0x20], edx
shr edx, 2
mov ecx, edx
add ecx, 0x41
mov dword [ebp - 0x1c], eax
mov eax, 0x643d5a
push 0x10
pop edi
test edi, edi
je 0x482374
test byte [eax], 1
movzx ebx, byte [eax + 1]
mov esi, edx
cmove esi, ecx
add edi, 0xfffffffc
sub ebx, esi
movsx ebx, bx
shr ebx, 8
and bx, word [eax + 2]
add eax, 4
add ebx, ecx
mov ecx, ebx
jmp 0x48234c
cmp dword [ebp - 0x10], 0
je 0x4824db
mov eax, dword [ebp - 0x14]
movzx esi, word [ebp - 0x18]
mov byte [eax], cl
movzx eax, word [ebp - 0x20]
mov dword [ebp - 0x18], esi
shr esi, 4
shl eax, 4
and eax, 0x30
lea ecx, [esi + eax]
lea ebx, [esi + eax + 0x41]
mov eax, 0x643d5a
push 0x10
pop esi
test esi, esi
je 0x4823ce
test byte [eax], 1
movzx edi, byte [eax + 1]
mov edx, ecx
cmove edx, ebx
add esi, 0xfffffffc
sub edi, edx
movsx edi, di
shr edi, 8
and di, word [eax + 2]
add eax, 4
add edi, ebx
mov ebx, edi
jmp 0x4823a6
cmp dword [ebp - 0x10], 1
je 0x4824e9
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov esi, 0x643d5a
mov byte [eax + 1], bl
movzx eax, word [ebp - 0x1c]
and ecx, 0xf
shr eax, 6
lea edx, [eax + ecx*4]
lea eax, [eax + ecx*4 + 0x41]
push 0x10
pop ecx
test ecx, ecx
je 0x482422
test byte [esi], 1
movzx edi, byte [esi + 1]
mov ebx, edx
cmove ebx, eax
add ecx, 0xfffffffc
sub edi, ebx
movsx edi, di
shr edi, 8
and di, word [esi + 2]
add esi, 4
add edi, eax
mov eax, edi
jmp 0x4823fa
mov ecx, dword [ebp - 0x10]
cmp ecx, 2
jbe 0x4824f8
mov edx, dword [ebp - 0x14]
cmp ecx, 3
mov byte [edx + 2], al
je 0x482507
cmp dword [ebp - 0x54], 1
movzx eax, al
push 0x3d
pop ecx
cmovne ecx, eax
mov byte [edx + 2], cl
mov byte [edx + 3], 0x3d
cmp dword [ebp - 0x28], 0
mov esi, dword [ebp - 0x2c]
je 0x482481
add esi, dword [ebp + 8]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x28]
sub esi, dword [ebp - 0x58]
cmp eax, esi
cmovb esi, eax
xor eax, eax
xor ecx, ecx
cmp esi, eax
je 0x482497
mov dl, byte [edi + eax]
xor dl, byte [ebx + eax]
inc eax
or cl, dl
jmp 0x482472
mov bl, 1
mov eax, dword [ebp - 0x24]
mov byte [eax + 4], bl
and dword [eax], 0
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
test cl, cl
je 0x48249f
xor ebx, ebx
jmp 0x482483
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x5c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x48248c
xor ecx, ecx
xor edx, edx
push 0x643e3c
call fcn.0043a050
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x643e4c
call fcn.0043a050
push 2
pop ecx
mov edx, ecx
push 0x643e5c
call fcn.0043a050
xor ecx, ecx
xor edx, edx
push 0x643e6c
call fcn.0043a050
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x643e7c
call fcn.0043a050
push 2
pop ecx
mov edx, ecx
push 0x643e8c
call fcn.0043a050
push 3
pop ecx
mov edx, ecx
push 0x643e9c
call fcn.0043a050