Function at 0x443412
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov edi, edx
mov ebx, dword [esp + 0x44]
mov edx, 0xaaaaaaab
mov eax, ebx
mul edx
cmp ebx, 0xbfffffff
ja 0x443450
mov esi, edx
shr esi, 1
lea eax, [esi + esi*2]
mov edx, ebx
sub edx, eax
shl esi, 2
test edx, edx
mov dword [esp + 0x10], edx
je 0x443471
cmp byte [edi], 0
je 0x443464
add esi, 4
jae 0x443471
mov ecx, 0x4a6ece
mov edx, 0x2d
push 0x4a6efc
call fcn.0048d760
xor eax, eax
cmp edx, 1
sete al
xor eax, 3
or esi, eax
mov dword [esp + 0x14], ecx
xor edx, edx
inc edx
mov dword [esp], esi
mov ecx, esi
call fcn.00478b38
mov dword [esp + 0xc], eax
mov ebp, edx
xor ecx, ecx
mov edx, ebx
mov eax, 0
sub edx, 0x1a
cmovb edx, ecx
mov dword [esp + 8], edx
jbe 0x443703
xor eax, eax
mov edx, 0x20
mov ecx, edx
lea edx, [eax + 0x1a]
cmp edx, ebx
ja 0x4439ad
test ecx, ecx
mov edx, dword [esp]
je 0x4439bb
cmp ecx, edx
ja 0x4439cc
mov edx, dword [esp + 0x40]
mov esi, dword [edx + eax]
mov edx, dword [edx + eax + 4]
bswap edx
bswap esi
mov ebx, esi
shr ebx, 0x1a
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x20], bl
mov ebx, esi
shr ebx, 0x14
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x1f], bl
mov ebx, esi
shr ebx, 0xe
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x1e], bl
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x1d], bl
mov ebx, esi
shr ebx, 2
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x1c], bl
shld esi, edx, 4
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 0x1b], bl
mov esi, edx
shr esi, 0x16
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 0x1a], bl
shr edx, 0x10
and edx, 0x3f
mov dl, byte [edi + edx + 3]
mov byte [ebp + ecx - 0x19], dl
mov edx, dword [esp + 0x40]
mov esi, dword [edx + eax + 6]
mov edx, dword [edx + eax + 0xa]
bswap edx
bswap esi
mov ebx, esi
shr ebx, 0x1a
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x18], bl
mov ebx, esi
shr ebx, 0x14
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x17], bl
mov ebx, esi
shr ebx, 0xe
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x16], bl
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x15], bl
mov ebx, esi
shr ebx, 2
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
shld esi, edx, 4
mov byte [ebp + ecx - 0x14], bl
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 0x13], bl
mov esi, edx
shr esi, 0x16
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 0x12], bl
shr edx, 0x10
and edx, 0x3f
mov dl, byte [edi + edx + 3]
mov byte [ebp + ecx - 0x11], dl
mov edx, dword [esp + 0x40]
mov esi, dword [edx + eax + 0xc]
mov edx, dword [edx + eax + 0x10]
bswap edx
bswap esi
mov ebx, esi
shr ebx, 0x1a
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0x10], bl
mov ebx, esi
shr ebx, 0x14
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0xf], bl
mov ebx, esi
shr ebx, 0xe
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0xe], bl
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0xd], bl
mov ebx, esi
shr ebx, 2
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 0xc], bl
shld esi, edx, 4
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 0xb], bl
mov esi, edx
shr esi, 0x16
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 0xa], bl
shr edx, 0x10
and edx, 0x3f
mov dl, byte [edi + edx + 3]
mov byte [ebp + ecx - 9], dl
mov edx, dword [esp + 0x40]
mov esi, dword [edx + eax + 0x12]
mov edx, dword [edx + eax + 0x16]
bswap esi
mov ebx, esi
shr ebx, 0x1a
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 8], bl
mov ebx, esi
shr ebx, 0x14
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 7], bl
mov ebx, esi
shr ebx, 0xe
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 6], bl
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
mov byte [ebp + ecx - 5], bl
mov ebx, esi
shr ebx, 2
and ebx, 0x3f
mov bl, byte [edi + ebx + 3]
bswap edx
shld esi, edx, 4
mov byte [ebp + ecx - 4], bl
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 3], bl
mov esi, edx
shr esi, 0x16
and esi, 0x3f
mov bl, byte [edi + esi + 3]
mov byte [ebp + ecx - 2], bl
shr edx, 0x10
and edx, 0x3f
mov dl, byte [edi + edx + 3]
mov byte [ebp + ecx - 1], dl
add eax, 0x18
lea edx, [ecx + 0x20]
cmp eax, dword [esp + 8]
mov ebx, dword [esp + 0x44]
jbe 0x4434a8
mov esi, ebx
sub esi, dword [esp + 0x10]
mov edx, esi
mov dword [esp + 4], esi
cmp eax, esi
jae 0x4437c1
lea esi, [eax + 3]
cmp eax, 0xfffffffc
ja 0x4439d9
cmp esi, ebx
mov edx, ebx
mov ebx, dword [esp]
ja 0x4439e7
lea edx, [ecx + 4]
cmp ecx, 0xfffffffb
ja 0x4439f3
cmp edx, ebx
mov dword [esp + 8], edx
ja 0x4439fd
mov edx, dword [esp + 0x40]
movzx ebx, byte [edx + eax]
mov edx, ebx
shr edx, 2
mov dl, byte [edi + edx + 3]
mov byte [ebp + ecx], dl
mov edx, dword [esp + 0x40]
mov dl, byte [edx + eax + 1]
shl bl, 4
mov dh, dl
shr dh, 4
or dh, bl
movzx ebx, dh
and ebx, 0x3f
mov dh, byte [edi + ebx + 3]
mov byte [ebp + ecx + 1], dh
mov ebx, dword [esp + 0x40]
movzx eax, byte [ebx + eax + 2]
shl dl, 2
mov dh, al
shr dh, 6
or dh, dl
movzx edx, dh
and edx, 0x3f
mov dl, byte [edi + edx + 3]
mov byte [ebp + ecx + 2], dl
and eax, 0x3f
mov al, byte [edi + eax + 3]
mov byte [ebp + ecx + 3], al
mov eax, esi
mov edx, dword [esp + 8]
mov ecx, edx
cmp esi, dword [esp + 4]
mov ebx, dword [esp + 0x44]
jb 0x443717
jmp 0x4437c3
mov edx, ecx
mov ebx, edx
mov eax, dword [esp + 0x10]
cmp eax, 1
je 0x44385f
cmp eax, 2
mov esi, dword [esp]
jne 0x4438a5
cmp ebx, esi
jae 0x443960
mov eax, dword [esp + 0x40]
mov esi, ebx
mov ecx, dword [esp + 4]
mov bl, byte [eax + ecx]
movzx eax, bl
shr eax, 2
mov al, byte [edi + eax + 3]
mov byte [ebp + esi], al
inc ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 4], ecx
cmp ecx, edx
jae 0x44397c
lea ecx, [esi + 1]
mov edx, dword [esp]
cmp ecx, edx
jae 0x443996
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 4]
mov al, byte [eax + ecx]
mov ecx, eax
shr cl, 4
shl bl, 4
or bl, cl
movzx ecx, bl
and ecx, 0x3f
mov cl, byte [edi + ecx + 3]
mov byte [ebp + esi + 1], cl
lea ecx, [esi + 2]
cmp ecx, edx
jae 0x4439a0
mov ebx, esi
shl al, 2
and al, 0x3c
mov edx, 3
mov esi, dword [esp]
jmp 0x443898
mov esi, dword [esp]
cmp ebx, esi
jae 0x44396e
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 4]
mov al, byte [eax + ecx]
movzx ecx, al
shr ecx, 2
mov cl, byte [edi + ecx + 3]
mov byte [ebp + ebx], cl
lea ecx, [ebx + 1]
cmp ecx, esi
jae 0x44398a
shl al, 4
and al, 0x30
mov edx, 2
movzx eax, al
mov al, byte [edi + eax + 3]
mov byte [ebp + ecx], al
add ebx, edx
xor edx, edx
cmp byte [edi], 0
je 0x4438d8
mov ecx, esi
sub ecx, ebx
jb 0x443a22
mov eax, ebx
neg eax
and eax, 3
je 0x4438d8
mov edx, ebp
add edx, ebx
xor edi, edi
cmp ecx, edi
je 0x443954
mov byte [edx + edi], 0x3d
inc edi
cmp eax, edi
jne 0x4438c5
mov edx, eax
add ebx, edx
jb 0x443a0e
lea edi, [esp + 0x18]
mov ecx, edi
mov edx, ebp
push esi
call fcn.00407a90
add esp, 4
cmp dword [edi], 0
je 0x443938
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
cmp edx, 0x80000000
je 0x443940
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov ecx, str.Invalid_UTF8
mov edx, 0xc
push 0x4a6f18
push 0x4a68dc
push edi
call fcn.0048d6c0
mov eax, esi
mov esi, ebp
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [ecx], ebp
mov dword [ecx + 4], esi
mov dword [ecx + 8], eax
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, ecx
push 0x493fac
call fcn.0048d350
mov ecx, ebx
mov edx, esi
push 0x493e18
call fcn.0048d350
mov ecx, ebx
mov edx, esi
push 0x493e58
call fcn.0048d350
mov ecx, dword [esp + 4]
push 0x493e28
call fcn.0048d350
mov edx, esi
push 0x493e68
call fcn.0048d350
push 0x493e38
call fcn.0048d350
mov edx, dword [esp]
push 0x493e48
call fcn.0048d350
mov ecx, edx
mov edx, ebx
push 0x493e98
call fcn.0048d3b0
mov ecx, 0xffffffe0
xor edx, edx
push 0x493ea8
call fcn.0048d5c0
mov edx, dword [esp]
push 0x493ea8
call fcn.0048d3b0
mov ecx, eax
mov edx, esi
push 0x493e78
call fcn.0048d5c0
mov ecx, esi
push 0x493e78
call fcn.0048d3b0
push 0x493e88
call fcn.0048d5c0
mov ecx, dword [esp + 8]
mov edx, dword [esp]
push 0x493e88
call fcn.0048d3b0
mov ecx, 0x4a6e44
mov edx, 0x2a
push 0x4a6e70
call fcn.0048d760
mov ecx, ebx
mov edx, esi
push 0x4a6e34
call fcn.0048d2f0