Function at 0x40d490
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov dword [0x4525a8], 0x73c00000
mov dword [0x4525ac], 0x41da37a7
mov dword [0x45211c], 0xcea281c7
fld qword [0x4522f0]
fadd qword [0x44c268]
mov eax, dword [0x4521f8]
mov dword [ebp - 0xc], eax
push ebx
fstp qword [ebp - 0x24]
push esi
fild dword [ebp - 0xc]
push edi
xor esi, esi
fadd qword [ebp - 0x24]
call fcn.00420a9c
push 0x41
mov dword [0x45214c], eax
push 0xebc
call fcn.00407770
mov ebx, eax
push 5
push 0x1d03
mov dword [ebp - 0xc], ebx
call fcn.00407770
movsx ecx, byte [ebx + 0x3e]
push ecx
mov edi, eax
push edi
lea edx, [ebp - 0x10]
push 4
push edx
call fcn.004220a1
push 5
push 0x1d03
call fcn.00407770
push edi
push 5
mov ebx, eax
call fcn.004164d0
mov eax, dword [0x4523e4]
mov ecx, dword [ebp - 0xc]
imul eax, eax, 0x57ce2926
mov dword [0x4523e4], eax
movsx edx, byte [ecx + 0x3f]
push edx
push ebx
lea eax, [ebp - 0x14]
push 4
push eax
call fcn.004220a1
add esp, 0x40
push 5
push 0x1d03
call fcn.00407770
push ebx
push 5
mov edi, eax
call fcn.004164d0
push 0x3d
push edi
lea ecx, [ebp - 0x1c]
push 4
push ecx
call fcn.004220a1
fld qword [0x452498]
fadd qword [0x44c260]
add esp, 0x20
fcomp qword [0x44c258]
fnstsw ax
fld qword [0x452498]
fadd qword [0x44b7f0]
fstp qword [0x452498]
test ah, 1
jne 0x40d5c9
fld dword [0x44c250]
fsub dword [0x452060]
mov edx, dword [0x452398]
mov dword [ebp - 0x18], edx
fstp qword [ebp - 0x24]
fild dword [ebp - 0x18]
fmul qword [ebp - 0x24]
call fcn.00420a9c
mov dword [0x452398], eax
jmp 0x40d5d3
mov dword [0x452184], 0xce729d30
push edi
push 5
call fcn.004164d0
add esp, 8
cmp dword [ebp + 0xc], esi
je 0x40dd7e
fld1
mov ebx, 1
mov eax, dword [ebp + 8]
mov cl, byte [eax]
sub dword [ebp + 0xc], ebx
mov byte [ebp + esi - 4], cl
add word [0x45224c], bx
mov dx, word [0x45224c]
movsx ecx, dx
mov edx, dword [0x452140]
mov eax, 0xf131dfa3
sub eax, ecx
mov ecx, 0x1edf63e6
sub ecx, edx
add esi, ebx
cmp ecx, eax
jle 0x40d695
fld qword [0x452280]
mov edx, dword [0x452350]
fsub qword [0x44c248]
add dword [0x452350], ebx
mov dword [ebp - 0x18], edx
fsub qword [0x44c240]
fstp qword [ebp - 0x2c]
fild dword [ebp - 0x18]
fcomp qword [ebp - 0x2c]
fnstsw ax
fld qword [0x452280]
fsub st(1)
fstp qword [0x452280]
test ah, 5
jp 0x40d6d8
fld qword [0x452270]
mov eax, dword [0x452064]
fsub qword [0x44c238]
mov dword [ebp - 0x18], eax
fstp qword [ebp - 0x2c]
fild dword [ebp - 0x18]
fsubr qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fld qword [0x452438]
fmul qword [ebp - 0x2c]
fstp qword [0x452438]
jmp 0x40d6d8
fld dword [0x452418]
fstp qword [ebp - 0x2c]
fld dword [0x45223c]
mov cx, word [0x452380]
fsubr qword [ebp - 0x2c]
movsx edx, cx
mov dword [ebp - 0x18], edx
fstp qword [ebp - 0x2c]
fild dword [ebp - 0x18]
fadd qword [ebp - 0x2c]
call fcn.00420a9c
mov word [0x452380], ax
fld dword [0x45223c]
fld1
fsubp st(1)
fstp dword [0x45223c]
add dword [ebp + 8], ebx
cmp esi, 3
jne 0x40d970
fld dword [0x4523c0]
movzx eax, byte [ebp - 4]
fsub dword [0x44c230]
mov cl, byte [ebp - 4]
movzx edx, byte [ebp - 3]
shr al, 2
mov byte [ebp - 8], al
and cl, 3
fstp dword [0x4523c0]
shl cl, 4
fld qword [0x452570]
shr dl, 4
fadd st(1)
add cl, dl
mov byte [ebp - 7], cl
fstp qword [0x452570]
mov eax, dword [0x452570]
mov ecx, dword [0x452574]
mov edx, dword [0x452494]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x18]
mov ax, word [0x4522d8]
mov dword [ebp - 0x20], ecx
movsx ecx, ax
fsubr qword [ebp - 0x24]
mov dword [ebp - 0x18], ecx
fstp qword [ebp - 0x2c]
fild dword [ebp - 0x18]
fmul qword [ebp - 0x2c]
call fcn.00420a9c
mov word [0x4522d8], ax
add dword [0x452494], ebx
movzx edx, byte [ebp - 3]
movzx ecx, word [0x4524b0]
movzx eax, byte [ebp - 2]
and dl, 0xf
add dl, dl
shr al, 6
add dl, dl
add dl, al
mov byte [ebp - 6], dl
mov edx, dword [0x45217c]
movsx eax, cx
add edx, eax
mov word [0x452244], dx
add word [0x4524b0], bx
movzx eax, byte [ebp - 2]
fadd qword [0x452400]
and al, 0x3f
mov byte [ebp - 5], al
fstp qword [0x452400]
fld qword [0x452400]
fsubr qword [0x44c228]
call fcn.00420a9c
mov dword [0x452030], eax
movzx ecx, word [0x452160]
mov eax, dword [0x452128]
mov edx, dword [0x452288]
movsx ecx, cx
sub eax, ecx
add edx, eax
mov dword [ebp - 0x18], edx
or edi, 0xffffffff
xor esi, esi
fild dword [ebp - 0x18]
fstp qword [ebp - 0x2c]
fld dword [0x4523ec]
fadd qword [ebp - 0x2c]
fstp dword [0x4523ec]
add dword [0x452288], edi
jmp 0x40d812
fstp st(0)
cmp byte [ebp + 0x10], 0
je 0x40d858
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x40d858
cmp al, 0x3e
jne 0x40d832
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
call fcn.0040c060
jmp 0x40d86d
mov ecx, dword [0x452148]
add ecx, dword [0x4523f8]
lea edx, [ebp - 0x14]
mov dword [0x4523f8], ecx
mov ecx, dword [ebp + 0x14]
add dword [0x452148], edi
push edx
call fcn.0040c060
jmp 0x40d86d
movzx eax, byte [ebp + esi - 8]
mov ecx, dword [ebp - 0xc]
movzx edx, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push edx
call fcn.0040f890
fld dword [0x452310]
mov edx, 0xf41acf2b
fld1
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [0x452310]
mov ax, word [0x4524e8]
movsx ecx, ax
mov eax, dword [0x452204]
sub edx, ecx
mov dword [ebp - 0x18], edx
fild dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
fstp qword [ebp - 0x34]
fild dword [ebp - 0x18]
fstp qword [ebp - 0x2c]
fld dword [0x452310]
add word [0x4524e8], bx
fsubr qword [ebp - 0x2c]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 1
jne 0x40d8f1
mov cx, word [0x452178]
movsx edx, cx
cmp edx, 0xd3e2fcc9
jle 0x40d913
add word [0x4524d0], bx
mov ax, word [0x4524d0]
mov cx, word [0x4523b0]
add word [0x4523b0], di
jmp 0x40d913
fld dword [0x4524a8]
mov dx, word [0x452434]
movsx eax, dx
fstp qword [ebp - 0x34]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fsubr qword [ebp - 0x34]
fstp dword [0x4524a8]
add esi, ebx
cmp esi, 4
jne 0x40d810
fld qword [0x452158]
xor esi, esi
fsub dword [0x452564]
fstp qword [ebp - 0x34]
fld qword [0x452078]
mov ecx, dword [0x4520e0]
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
fadd qword [ebp - 0x34]
fsubp st(1)
fstp qword [0x452078]
add dword [0x4520e0], ebx
fadd dword [0x452564]
fstp dword [0x452564]
fld qword [0x452158]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x452158]
cmp dword [ebp + 0xc], 0
mov edx, 0xffff8159
mov word [0x452278], dx
jne 0x40d5ee
test esi, esi
je 0x40dd7c
add word [0x4524ec], bx
mov ax, word [0x4523b0]
movsx ecx, ax
mov dword [ebp + 0xc], ecx
fild dword [ebp + 0xc]
fstp qword [ebp - 0x2c]
fld dword [0x4520a4]
mov dx, word [0x4524ec]
movsx eax, dx
fstp qword [ebp - 0x34]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fadd qword [ebp - 0x34]
fsubr qword [ebp - 0x2c]
call fcn.00420a9c
mov word [0x4523b0], ax
fld dword [0x4520a4]
fld1
faddp st(1)
fstp dword [0x4520a4]
cmp esi, 3
jge 0x40da94
mov edi, 3
fstp st(0)
sub edi, esi
push edi
lea eax, [ebp + esi - 4]
push 0
push eax
call fcn.00420970
add esp, 0xc
mov ecx, 0x6d83
mov word [0x452508], cx
mov dx, word [0x4523a8]
dec word [0x4523a8]
movsx eax, dx
cmp eax, 0xb5660a7b
je 0x40da68
fld qword [0x452010]
fsubr qword [0x44c220]
fstp qword [ebp - 0x34]
fld qword [0x4520e8]
fsub dword [0x452448]
fsub qword [0x44c218]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 1
jne 0x40da8a
movzx ecx, word [0x4523c8]
add ecx, 0x5fca584a
mov word [0x4523c8], cx
jmp 0x40da8a
mov edx, dword [0x452560]
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fstp dword [ebp + 0xc]
fld dword [0x45226c]
fmul dword [ebp + 0xc]
call fcn.00420a9c
mov dword [0x452560], eax
sub edi, ebx
jne 0x40da03
fld1
fld qword [0x452158]
mov al, byte [ebp - 4]
fsub qword [0x44c210]
mov cl, al
and al, 3
shl al, 4
fsub qword [0x44c208]
mov byte [ebp - 7], al
shr cl, 2
mov byte [ebp - 8], cl
fstp qword [ebp - 0x34]
xor edi, edi
fld dword [0x452210]
fadd qword [ebp - 0x34]
fstp dword [0x452210]
fld qword [0x452158]
mov al, byte [ebp - 3]
mov dl, al
fadd st(1)
and al, 0xf
add al, al
shr dl, 4
fstp qword [0x452158]
add byte [ebp - 7], dl
fld dword [0x452210]
fstp qword [ebp - 0x34]
fld dword [0x4524a8]
fadd qword [ebp - 0x34]
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
fstp dword [0x4524a8]
fld dword [0x452210]
fld1
faddp st(1)
fstp dword [0x452210]
test esi, esi
jns 0x40dbd2
fstp st(0)
add dword [0x4523ac], 0x29428c97
cmp esi, 3
jge 0x40dd7e
mov edi, 3
sub edi, esi
jmp 0x40db50
cmp byte [ebp + 0x10], 0
mov edx, dword [0x452064]
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fstp qword [ebp - 0x34]
fld qword [0x452018]
fadd qword [ebp - 0x34]
fstp qword [ebp - 0x34]
fld qword [0x452570]
fadd qword [ebp - 0x34]
fstp qword [0x452570]
je 0x40dd4e
lea eax, [ebp - 0x1c]
push eax
call fcn.0040c060
add word [0x4524e8], bx
mov cx, word [0x45247c]
mov dx, word [0x4524e8]
movsx eax, cx
movsx ecx, dx
mov edx, dword [0x45233c]
sub eax, ecx
sub eax, edx
mov word [0x45247c], ax
dec dword [0x45233c]
jmp 0x40dd60
fld1
cmp byte [ebp + 0x10], 0
je 0x40dcad
mov al, byte [ebp + edi - 8]
cmp al, 0x3d
jbe 0x40dcad
fstp st(0)
cmp al, 0x3e
jne 0x40dc4b
dec dword [0x4523f8]
mov eax, dword [0x452128]
mov cx, word [0x4523e8]
mov edx, dword [0x4523f8]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
movsx eax, cx
add edx, eax
mov dword [ebp + 0xc], edx
fstp qword [ebp - 0x2c]
fild dword [ebp + 0xc]
fstp qword [ebp - 0x34]
fld dword [0x45227c]
fadd qword [ebp - 0x34]
fsubr qword [ebp - 0x2c]
call fcn.00420a9c
mov ecx, dword [ebp + 0x14]
mov dword [0x452128], eax
add word [0x4523e8], bx
lea eax, [ebp - 0x10]
push eax
call fcn.0040c060
jmp 0x40dd3f
mov ecx, dword [0x452470]
mov dx, word [0x4521d8]
add dword [0x452470], ebx
mov eax, 0x9681a49
sub eax, ecx
movsx ecx, dx
cmp eax, ecx
jle 0x40dc8a
fld dword [0x452090]
fsub dword [0x44c200]
fstp qword [ebp - 0x34]
fld qword [0x4520e8]
fadd qword [ebp - 0x34]
fstp qword [0x4520e8]
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x14]
push edx
call fcn.0040c060
movzx eax, word [0x452534]
sub eax, 0x6dc60547
mov word [0x452534], ax
jmp 0x40dd3f
fld qword [0x4522b8]
fsubr qword [0x44c1f8]
fsub qword [0x44c1f0]
fstp qword [ebp - 0x2c]
fld qword [0x4522b8]
mov cx, word [0x45208c]
fsub qword [0x44c1e8]
movsx edx, cx
mov dword [ebp + 0xc], edx
fstp qword [ebp - 0x34]
fild dword [ebp + 0xc]
fadd qword [ebp - 0x34]
fcomp qword [ebp - 0x2c]
fnstsw ax
fsubr qword [0x4522b8]
fstp qword [0x4522b8]
test ah, 5
jp 0x40dd2a
mov ax, word [0x452164]
mov ecx, dword [0x4522b4]
cwde
add eax, 0x68a1393a
add ecx, 0x7f4e0d8e
cmp ecx, eax
jg 0x40dd2a
mov dword [0x452480], 0xaf800000
mov dword [0x452484], 0x41c39493
movzx edx, byte [ebp + edi - 8]
mov eax, dword [ebp - 0xc]
movzx ecx, byte [edx + eax]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.0040f890
add edi, ebx
cmp edi, esi
jle 0x40dbd0
jmp 0x40db31
push 0x3d
call fcn.0040f890
mov eax, 0x308e
mov word [0x452338], ax
sub edi, ebx
fld dword [0x452238]
fsub dword [0x44c1e0]
fstp qword [0x452570]
jne 0x40db50
jmp 0x40dd7e
fstp st(0)
mov ecx, dword [ebp - 0xc]
push ecx
push 0x41
call fcn.004164d0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret