Function at 0x401000
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov edi, dword [ebp + 8]
movss xmm0, dword [ebp + 0xc]
orpd xmm0, xmmword [0x445090]
subsd xmm0, qword [0x4450a0]
divsd xmm0, qword [0x4450a8]
movsd qword [esp], xmm0
call fcn.004360e0
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
mulsd xmm0, qword [0x4450b0]
addsd xmm0, qword [0x4450b8]
cvttsd2si eax, xmm0
mov ecx, eax
sar ecx, 0x1f
subsd xmm0, qword [0x4450c0]
cvttsd2si edx, xmm0
and edx, ecx
or edx, eax
mov dword [esp + 4], edx
mov dword [esp], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
sub esp, 8
test eax, eax
je 0x4012d5
cmp dword [ebp + 0xc], 0
je 0x4012d9
xor edi, edi
xor esi, esi
xor ebx, ebx
mov dword [esp + 0xc], eax
jmp 0x4010b6
add dl, 0x41
mov byte [eax + esi + 1], dl
add esi, 2
xor edi, edi
inc ebx
cmp dword [ebp + 0xc], ebx
je 0x4012ae
cmp di, 0x14
ja case.default.0x4010c6
mov ecx, dword [ebp + 0x10]
movzx edx, byte [ecx + ebx]
movzx ecx, di
jmp dword [ecx*4 + 0x445340]
mov ecx, edx
shr cl, 2
cmp dl, 0x67
ja 0x401242
add cl, 0x41
jmp 0x40129e
mov ecx, edx
shr cl, 4
add cl, 0x41
jmp 0x401277
mov eax, edx
shr al, 4
cmp dl, 0xa0
mov ecx, 0x57
mov edi, 0x51
cmovb ecx, edi
add cl, al
mov eax, dword [esp + 0xc]
mov byte [eax + esi], cl
movzx edi, dx
inc esi
jmp 0x40127e
mov eax, edx
shr al, 4
add al, 0x67
mov ecx, dword [esp + 0xc]
mov byte [ecx + esi], al
mov eax, dword [esp + 0xc]
jmp 0x40127a
mov ecx, edx
shr cl, 4
cmp dl, 0x3f
ja 0x40124c
add cl, 0x77
jmp 0x401277
mov eax, edx
shr al, 6
add al, 0x41
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x45
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x49
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x4d
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x51
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x55
jmp 0x401200
mov eax, edx
shr al, 6
test dl, dl
mov ecx, 0x5f
mov edi, 0x59
cmovns ecx, edi
add cl, al
mov eax, dword [esp + 0xc]
mov byte [eax + esi], cl
jmp 0x40120b
mov eax, edx
shr al, 6
add al, 0x63
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x67
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x6b
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x6f
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x73
jmp 0x401200
mov eax, edx
shr al, 6
add al, 0x77
jmp 0x401200
mov eax, edx
shr al, 6
or al, 0x30
jmp 0x401200
mov eax, edx
shr al, 6
or al, 0x34
jmp 0x401200
test dl, dl
js 0x401256
mov eax, edx
shr al, 6
or al, 0x38
nop
mov ecx, dword [esp + 0xc]
mov byte [ecx + esi], al
mov eax, dword [esp + 0xc]
and dl, 0x3f
cmp dl, 0x19
jbe 0x4010a0
cmp dl, 0x33
ja 0x401224
add dl, 0x47
jmp 0x4010a3
cmp dl, 0x3d
ja 0x401231
add dl, 0xfc
jmp 0x4010a3
cmp dl, 0x3e
setne dl
shl dl, 2
or dl, 0x2b
jmp 0x4010a3
cmp dl, 0xcf
ja 0x401261
add cl, 0x47
jmp 0x40129e
cmp dl, 0xdf
ja 0x40126b
add cl, 0x2c
jmp 0x401277
cmp dl, 0xc0
jb 0x401289
mov byte [eax + esi], 0x2f
jmp 0x40120b
cmp dl, 0xf7
ja 0x401292
add cl, 0xfc
jmp 0x40129e
cmp cl, 0xe
setne cl
shl cl, 2
or cl, 0x2b
mov byte [eax + esi], cl
inc esi
movzx edi, dx
and edi, 0xf
add edi, 5
jmp case.default.0x4010c6
mov byte [eax + esi], 0x2b
jmp 0x40120b
cmp cl, 0x3e
setne cl
shl cl, 2
or cl, 0x2b
mov byte [eax + esi], cl
inc esi
movzx edi, dx
and edi, 3
inc edi
jmp case.default.0x4010c6
movzx edi, di
dec edi
cmp edi, 0x13
ja case.default.0x4012c5
mov edx, 2
mov ecx, 1
jmp dword [edi*4 + 0x445394]
lea edi, [esi + 1]
mov byte [eax + esi], 0x41
jmp 0x4012f6
xor esi, esi
jmp 0x401357
xor esi, esi
jmp 0x401352
lea edi, [esi + 1]
mov byte [eax + esi], 0x51
jmp 0x4012f6
lea edi, [esi + 1]
mov byte [eax + esi], 0x67
jmp 0x4012f6
lea edi, [esi + 1]
mov byte [eax + esi], 0x77
mov edx, 3
mov bl, 0x3d
mov ecx, 2
jmp 0x401344
mov bl, 0x41
jmp 0x401342
mov bl, 0x45
jmp 0x401342
mov bl, 0x49
jmp 0x401342
mov bl, 0x4d
jmp 0x401342
mov bl, 0x51
jmp 0x401342
mov bl, 0x55
jmp 0x401342
mov bl, 0x59
jmp 0x401342
mov bl, 0x63
jmp 0x401342
mov bl, 0x67
jmp 0x401342
mov bl, 0x6b
jmp 0x401342
mov bl, 0x6f
jmp 0x401342
mov bl, 0x73
jmp 0x401342
mov bl, 0x77
jmp 0x401342
mov bl, 0x30
jmp 0x401342
mov bl, 0x34
jmp 0x401342
mov bl, 0x38
mov edi, esi
add ecx, esi
mov byte [eax + edi], bl
add esi, edx
mov byte [eax + ecx], 0x3d
mov edi, dword [ebp + 8]
mov byte [eax + esi], 0
inc esi
mov dword [edi], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret