Function at 0x412830
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
fld qword [0x450260]
mov ax, word [0x45039c]
fsub qword [0x44a178]
inc word [0x45039c]
movsx ecx, ax
mov edx, 0x4363ba35
fsub qword [0x44a170]
sub edx, ecx
mov dword [ebp - 0xc], edx
fstp qword [ebp - 0x1c]
fild dword [ebp - 0xc]
fcomp qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jne 0x41287c
mov dword [0x4500cc], 0x14692c32
mov eax, dword [0x450190]
add eax, dword [0x450268]
push ebx
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
push esi
push edi
push 0x41
fstp qword [ebp - 0x1c]
push 0x3170
fld dword [0x450400]
xor esi, esi
fsubr qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld dword [0x450414]
fmul qword [ebp - 0x1c]
fstp dword [0x450414]
call fcn.0041a660
fld qword [0x450050]
mov ebx, eax
fadd qword [0x450120]
push 5
push 0xb93
mov dword [ebp - 0xc], ebx
fstp qword [ebp - 0x1c]
fld qword [0x4500d0]
fmul qword [ebp - 0x1c]
fstp qword [0x4500d0]
call fcn.0041a660
movsx ecx, byte [ebx + 0x3e]
push ecx
mov edi, eax
push edi
lea edx, [ebp - 0x10]
push 4
push edx
call fcn.004200d9
push 5
push 0xb93
call fcn.0041a660
push edi
push 5
mov ebx, eax
call fcn.004094f0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + 0x3f]
push ecx
push ebx
lea edx, [ebp - 0x14]
push 4
push edx
call fcn.004200d9
add esp, 0x40
fld qword [0x450028]
push 5
fstp dword [0x450010]
push 0xb93
call fcn.0041a660
dec dword [0x450088]
mov edi, eax
mov eax, dword [0x450398]
mov ecx, dword [0x450088]
add eax, 0xb7d6107a
add ecx, eax
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
push ebx
push 5
fstp qword [ebp - 0x1c]
fld qword [0x450100]
fmul qword [ebp - 0x1c]
fstp qword [0x450100]
call fcn.004094f0
push 0x3d
push edi
lea edx, [ebp - 0x20]
push 4
push edx
call fcn.004200d9
fld dword [0x4500b0]
fsub dword [0x44a168]
fstp qword [ebp - 0x28]
or ebx, 0xffffffff
fld qword [0x450298]
mov eax, dword [0x450094]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
push edi
push 5
fadd qword [ebp - 0x28]
fsubp st(1)
fstp qword [0x450298]
add dword [0x450094], ebx
fld dword [0x4500b0]
fld1
fsubp st(1)
fstp dword [0x4500b0]
call fcn.004094f0
mov edi, dword [ebp + 0xc]
add esp, 0x28
test edi, edi
je 0x412cba
jmp 0x4129f0
fld dword [0x450158]
fsub dword [0x44a164]
call fcn.0041eb1c
mov dword [0x450108], eax
mov eax, dword [ebp + 8]
mov dword [0x450304], 0xcc8ffda5
mov cl, byte [eax]
mov byte [ebp + esi - 4], cl
inc esi
inc eax
dec edi
mov dword [0x450128], 0x22000000
mov dword [0x45012c], 0x41db09af
mov dword [ebp + 8], eax
cmp esi, 3
jne 0x412c9e
fld qword [0x450020]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [0x450020]
fld dword [0x45018c]
mov dx, word [0x45004c]
fstp qword [ebp - 0x28]
movsx eax, dx
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fsubr qword [ebp - 0x28]
fstp qword [ebp - 0x28]
fld qword [0x450020]
mov ecx, dword [0x4503fc]
fadd qword [ebp - 0x28]
sub ecx, 0x1a81bbb7
mov dword [ebp + 0xc], ecx
fstp qword [ebp - 0x1c]
fild dword [ebp + 0xc]
fstp qword [ebp - 0x28]
fld dword [0x450114]
fsubr qword [ebp - 0x28]
fld qword [ebp - 0x1c]
fucompp
fnstsw ax
fld dword [0x45018c]
fld1
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [0x45018c]
test ah, 0x44
jnp 0x412b0a
fld qword [0x450318]
fsub qword [0x4500a8]
fstp qword [ebp - 0x28]
fld dword [0x450400]
fadd dword [0x44a160]
fcomp qword [ebp - 0x28]
fnstsw ax
fsubr dword [0x450400]
fstp dword [0x450400]
fld qword [0x4500a8]
fadd st(1)
fstp qword [0x4500a8]
test ah, 0x41
jne 0x412b0c
fld qword [0x4501c8]
fsub qword [0x44a158]
fstp qword [0x4501c8]
jmp 0x412b0c
fstp st(0)
fadd qword [0x4503c0]
mov dl, byte [ebp - 4]
shr dl, 2
mov byte [ebp - 8], dl
fstp qword [0x4503c0]
fld qword [0x4503c0]
movzx eax, byte [ebp - 4]
fsub qword [0x44a150]
and al, 3
shl al, 4
mov cl, al
mov al, byte [ebp - 3]
fadd qword [0x44a148]
mov dl, al
and al, 0xf
add al, al
fstp qword [0x450098]
shr dl, 4
add cl, dl
mov byte [ebp - 7], cl
lea ecx, [eax + eax]
mov al, byte [ebp - 2]
mov dl, al
shr dl, 6
and al, 0x3f
mov byte [ebp - 5], al
add ecx, edx
mov byte [ebp - 6], cl
xor esi, esi
lea esp, [esp]
cmp byte [ebp + 0x10], 0
je 0x412bc4
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x412bc4
cmp al, 0x3e
jne 0x412b88
lea eax, [ebp - 0x10]
push eax
jmp 0x412b8c
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.004012d0
fld dword [0x44a144]
fsub dword [0x45038c]
fstp qword [ebp - 0x28]
fld qword [0x4500e0]
fmul qword [ebp - 0x28]
fstp qword [0x4500e0]
fld dword [0x45038c]
fld1
fsubp st(1)
fstp dword [0x45038c]
jmp 0x412c0a
mov dx, word [0x450334]
mov ecx, dword [0x4502c8]
movsx eax, dx
sub eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0xc]
fild dword [ebp + 0xc]
fstp qword [ebp - 0x28]
fld qword [0x4503c8]
fadd qword [ebp - 0x28]
fstp qword [0x4503c8]
add word [0x450334], bx
movzx edx, byte [ebp + esi - 8]
movzx ecx, byte [edx + eax]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.0040bbe0
movzx edx, word [0x4500f0]
mov ecx, dword [0x450108]
movsx eax, dx
movzx edx, word [0x450428]
add ecx, eax
mov dword [ebp + 0xc], ecx
movsx eax, dx
fild dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
fstp qword [ebp - 0x1c]
fild dword [ebp + 0xc]
fstp qword [ebp - 0x28]
fld qword [0x450228]
add word [0x450428], bx
fsubr qword [ebp - 0x28]
inc word [0x4500f0]
fcomp qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jne 0x412c92
fld qword [0x4503c8]
fld dword [0x45033c]
fadd dword [0x44a140]
fcompp
fnstsw ax
test ah, 5
jp 0x412c92
fld dword [0x450188]
mov ecx, dword [0x45024c]
fstp qword [ebp - 0x28]
mov dword [ebp + 0xc], ecx
fild dword [ebp + 0xc]
fsubr qword [ebp - 0x28]
fstp dword [0x450188]
inc esi
cmp esi, 4
jne 0x412b70
xor esi, esi
movzx edx, word [0x4502d8]
imul edx, edx, 0x243f3b9c
mov word [0x4502d8], dx
test edi, edi
jne 0x4129f0
mov dword [0x4503ec], 0x512cb1ae
test esi, esi
je 0x412ecd
cmp esi, 3
jge 0x412ce8
mov ecx, 3
sub ecx, esi
push ecx
lea eax, [ebp + esi - 4]
push 0
push eax
call fcn.0041e9b0
add esp, 0xc
mov al, byte [ebp - 4]
fld qword [0x450228]
fsub qword [0x44a138]
mov dl, al
and al, 3
shl al, 4
mov byte [ebp - 7], al
fstp qword [ebp - 0x28]
mov eax, dword [0x4500cc]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
shr dl, 2
mov byte [ebp - 8], dl
fadd qword [ebp - 0x28]
call fcn.0041eb1c
mov dword [0x4500cc], eax
mov al, byte [ebp - 3]
mov cl, al
and al, 0xf
add al, al
shr cl, 4
add byte [ebp - 7], cl
xor edi, edi
lea edx, [eax + eax]
mov al, byte [ebp - 2]
mov cl, al
shr cl, 6
and al, 0x3f
mov byte [ebp - 5], al
add edx, ecx
mov byte [ebp - 6], dl
test esi, esi
js 0x412e87
fld1
mov bl, byte [ebp + 0x10]
test bl, bl
je 0x412dfc
mov al, byte [ebp + edi - 8]
cmp al, 0x3d
jbe 0x412dfc
fld dword [0x450188]
fstp qword [ebp - 0x28]
fld qword [0x450198]
fsubr qword [0x44a130]
fsubr qword [ebp - 0x28]
fstp dword [0x450188]
fsubr qword [0x450198]
fstp qword [0x450198]
cmp al, 0x3e
jne 0x412db1
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x10]
mov edx, 0xa2c
push eax
mov word [0x4501b4], dx
call fcn.004012d0
jmp 0x412e25
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.004012d0
fld dword [0x4503f4]
fadd dword [0x44a128]
mov edx, dword [0x4502c4]
sub edx, 0x14c9b188
mov dword [ebp + 0xc], edx
fstp qword [ebp - 0x28]
fild dword [ebp + 0xc]
fcomp qword [ebp - 0x28]
fnstsw ax
test ah, 1
jne 0x412e25
fld qword [0x4500b8]
fadd qword [0x44a120]
fstp qword [0x4500b8]
jmp 0x412e25
movzx eax, byte [ebp + edi - 8]
fstp st(0)
mov ecx, dword [ebp - 0xc]
movzx edx, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push edx
call fcn.0040bbe0
fld dword [0x44a118]
fsub dword [0x4503f0]
fstp dword [0x450214]
fld dword [0x4500b0]
fld1
faddp st(1)
fstp dword [0x4500b0]
mov eax, dword [0x450194]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fstp qword [ebp - 0x1c]
fld dword [0x4500b0]
fsub dword [0x44a114]
fstp qword [ebp - 0x28]
fld qword [0x450180]
fsubr qword [ebp - 0x28]
fsubr qword [ebp - 0x1c]
call fcn.0041eb1c
mov dword [0x450194], eax
fld qword [0x450180]
fld1
inc edi
fadd st(1), st(0)
fxch st(1)
fstp qword [0x450180]
cmp edi, esi
jle 0x412d52
fstp st(0)
jmp 0x412e8a
mov bl, byte [ebp + 0x10]
cmp esi, 3
jge 0x412ecd
mov edi, 3
sub edi, esi
test bl, bl
je 0x412ec0
mov ecx, dword [0x4500cc]
mov edx, dword [0x450248]
lea eax, [edx + ecx + 0x483add4f]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, dword [ebp + 0x14]
mov dword [0x4500cc], eax
call fcn.004012d0
jmp 0x412eca
mov ecx, dword [ebp + 0x14]
push 0x3d
call fcn.0040bbe0
dec edi
jne 0x412e96
mov edx, dword [ebp - 0xc]
push edx
push 0x41
call fcn.004094f0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret